【问题标题】:How to set permissions using chmod如何使用 chmod 设置权限
【发布时间】:2013-11-04 01:51:04
【问题描述】:

我最近找到了一种方法,可以使用我修改的 dropbear SSH 服务器在我的 android 设备上维护 root 访问权限,我使用 init.d、一个 lil 脚本魔法和我制作的一些配置脚本修改为在启动时以 root 身份运行。如果您愿意,可以查看here...无论如何,为了进行实验,我从系统中删除了 su 二进制文件和 Superuser.apk。我已经设法将它们复制回系统,但我不知道如何为 su 二进制文件设置适当的权限。如果我在另一部 root 手机上查看超级用户应用程序并进行更新,它会显示 -rwsr -sr-x 作为二进制文件的权限。如何手动设置这些相同的权限以及它们是什么意思?特别是 s 部分。

【问题讨论】:

    标签: android bash shell file-permissions chmod


    【解决方案1】:

    s 部分是setuid 位。 Wikipedia:

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

    那个权限字符串的意思是:

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

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

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

    【讨论】:

    • 所以如果设置了 s 标志,那么它会以它所拥有的用户身份运行可执行文件?
    • 是的,没错。这就是 su 的全部意义——你需要它成为 root,所以它需要能够成为 root。
    • 酷,这让我启动并运行。谢谢小伙伴的帮助,非常感谢。通过提问,我学得更好。
    • 完全没有问题。祝你好运。
    • @Geofferey 我注意到您正在尝试编辑此内容,但人们一直拒绝您的编辑。我查了一下,你是对的——我的建议也可以,但看起来06755 在 Android 上比桌面 Linux 系统更正确。我已经编辑了帖子。
    猜你喜欢
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2012-07-20
    • 2019-01-13
    相关资源
    最近更新 更多