suid和其他许可(世界许可)有什么区别?

时间:2017-03-27 17:49:57

标签: linux permissions file-ownership suid

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

如果你强加给一个程序: rwsrwxr--或rwxr - rwx

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

3 个答案:

答案 0 :(得分:1)

如果您拥有 rwxr - rwx 权限,则能够将该程序作为"其他"运行,但万一此程序需要例如,访问您未获得权限的文件的权限 - 它将失败。

rwsrwxr - 甚至不允许您按照"其他"首先是

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

顺便说一句,如果你想试验SUID,请注意默认情况下bash脚本上的SUID被禁用(没有任何效果)

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

首先,您应该在this community中提出这样的问题。

接下来,according to this doc通过设置 suid ,您将按照onwer权限运行文件。

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

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