4

简而言之,用户在执行文件/程序时将获得文件所有者的权限以及所有者 UID 和 GID。它不会更改文件的所有者。

如果您在程序中强加:rwsrwxr-- 或 rwxr--rwx

如果我设置 SUID 权限(所有者)或 World 权限(其他),有什么区别?在这两种情况下用户都可以运行程序吗?

4

3 回答 3

2

如果您具有rwxr--rwx权限,您能够以“其他”身份运行该程序,但如果该程序需要访问权限,例如,您没有权限的文件 - 它将失败.

rwsrwxr——一开始甚至不会让你将命令作为“其他”运行

因此,您需要自己的x权限才能启动程序,但如果您希望程序承担其所有者的权限,您还需要 SUID。

顺便说一句,如果您想尝试使用 SUID,请注意在 bash 脚本中默认禁用 SUID(没有任何影响)

于 2017-09-10T23:03:03.123 回答
0

用户是否能够运行程序取决于它是否具有可执行权限。是的,设置 suid 位不会改变所有者。

现在提出您的问题,为世界设置 suid 没有任何区别,因为任何用户在运行该程序时都有自己的权限,因此世界的 suid 位没有任何意义,而为所有者设置 suid 位将允许任何用户能够运行它以使用所有者的权限运行。所以总结一下运行程序不依赖于 suid 位,而是依赖于x(可执行的)perm。

于 2017-03-27T18:11:23.213 回答
0

首先,你应该在这个社区问这样的问题。

接下来,根据此文档通过设置suid您将通过 onwer 权限运行文件。

例如passwd命令将读取和写入具有权限的/etc/shadowrw-r-----文件,但您可以调用该命令,为什么?隐藏在suid问题中的原因。

因为通过suid位功能_您以所有者文件用户权限而不是其他用户权限运行应用程序

于 2017-05-21T12:45:49.697 回答