在Unix中,如果我运行一个垃圾文件的二进制文件,该二进制文件是否与我自己(运行二进制文件的用户(具有相同的文件权限?
在大多数情况下,答案是肯定的!
但是,如果您在该二进制文件上启用了setuid
,则setgid
位,则不正确。
启用了setuid
的二进制文件的经典示例。
ls -ltra `which passwd`
如果该命令在执行期间无法授予您(执行命令的用户(与 root 相同的权限来修改/etc/password
或/etc/shadow
等文件,则该命令将无法工作
看看:
https://docs.oracle.com/cd/E19683-01/816-4883/secfile-69/index.html
setuid 权限
在 可执行文件,运行此文件的进程被授予访问权限 在文件的所有者(通常是 root(上,而不是在 运行可执行文件。此特殊权限允许用户 访问通常仅对 所有者。
设置权限
集合组标识 (setgid( 权限类似于 setuid, 除了进程的有效组 ID (GID( 更改为 文件的组所有者,并且根据 授予该组的权限。/usr/bin/mail 命令具有 设置权限
您可能还想看看fork
,如果您想进一步了解 Linux 如何管理进程和子进程,exec
。