【发布时间】:2017-03-27 17:49:57
【问题描述】:
简单来说,用户在执行一个文件/程序的时候,会得到文件所有者的权限以及所有者的UID和GID,不会改变文件的所有者。
如果您在程序中强加: rwsrwxr-- 或 rwxr--rwx
如果我设置 SUID 权限(所有者)或 World 权限(其他),有什么区别? 在这两种情况下用户都可以运行程序吗?
【问题讨论】:
标签: linux permissions file-ownership suid
简单来说,用户在执行一个文件/程序的时候,会得到文件所有者的权限以及所有者的UID和GID,不会改变文件的所有者。
如果您在程序中强加: rwsrwxr-- 或 rwxr--rwx
如果我设置 SUID 权限(所有者)或 World 权限(其他),有什么区别? 在这两种情况下用户都可以运行程序吗?
【问题讨论】:
标签: linux permissions file-ownership suid
如果您有 rwxr--rwx 权限,您将能够以“其他”身份运行该程序,但如果该程序需要访问权限,例如例如,您没有权限的文件 - 它会失败。
rwsrwxr-- 一开始甚至不会让您以“其他”身份运行命令
因此,您需要自己的 x 权限才能启动该程序,但如果您希望该程序承担其所有者的权限,您还需要 SUID。
顺便说一句,如果您想尝试使用 SUID,请注意在 bash 脚本中默认禁用 SUID(没有任何影响)
【讨论】:
用户是否能够运行程序取决于它是否具有可执行权限。是的,设置 suid 位不会改变所有者。
现在来回答您的问题,为 world 设置 suid 没有任何区别,因为任何用户在运行该程序时都有自己的权限,因此为 world 设置 suid 位没有任何意义,而为所有者设置 suid 位将允许任何用户能够以所有者的权限运行它。所以总结一下运行程序不依赖于suid位,而是依赖于x(可执行)perm。
【讨论】:
首先,您应该在this community 中提出这样的问题。
接下来,according to this doc 通过设置 suid 您将通过 onwer 权限运行文件。
例如passwd 命令将在具有rw-r----- 权限的/etc/shadow 文件中读取和写入,但是您可以调用该命令,为什么?隐藏在suid问题中的原因。
因为 suid 位功能_您以所有者文件用户权限而不是其他用户权限运行应用程序
【讨论】: