如何使用chmod设置权限

4
我最近发现一种方法,可以使用一个我修改过的dropbear SSH服务器来维持我的Android设备的根访问权限。通过在init.d中运行作为root的lil脚本魔法和一些我制作的配置脚本,我已经使其自动启动。如果你想的话,你可以在这里查看它:here... 无论如何,作为一个实验,我从系统中删除了su二进制文件和Superuser.apk。我已经成功将它们复制回系统,但是我不知道如何设置su二进制文件的适当权限。如果我在另一个已root的手机上查看超级用户应用并进行更新,则显示-rwsr-sr-x作为二进制文件的权限。我如何手动设置相同的权限,并且它们的含义是什么?特别是s部分。
1个回答

4

s部分是setuid位。 Wikipedia:

setuid和setgid(分别代表“执行时设置用户ID”和“执行时设置组ID”)是Unix访问权限标志,允许用户以可执行文件的所有者或组的权限运行可执行文件,并在目录中更改行为。

该权限字符串表示:

  • 所有者可以读取、写入和执行
  • 文件组中的用户可以读取和执行
  • 其他用户可以读取和执行
  • 文件已设置setuid

您可以通过运行chmod 06755 /system/bin/su来设置特定权限。这是八进制(=“八个中的一个”,就像十进制是“十个中的一个”,十六进制是“十六个中的一个”)编码:

  • setuid位(4)和setgid位(2)= 6
  • 所有者的所有权限(7)
  • 读取和执行组(5)
  • 读取和执行其他人(5)

所以,如果设置了s标志,则会将可执行文件作为其所有者拥有的用户运行? - Geofferey
没错,这就是 su 的全部意义 -- 你需要它来成为 root,因此它需要有能力成为 root。 - Christian Ternus
太棒了,这让我能够开始运行了。谢谢你的帮助,伙计,非常感激。我通过提问来学习得更好。 - Geofferey
完全没有问题。祝你好运。 - Christian Ternus
@Geofferey,我注意到你一直在尝试编辑这个内容,但是人们一直拒绝你的修改。我查了一下,你是对的——我的建议也可以实现,但是在Android系统上,06755似乎更正确,而不是桌面Linux系统。我已经编辑了这篇文章。 - Christian Ternus
那个四位数字(6775)前面的前导零是什么意思? - dash17291

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接