在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权限
在可执行文件上设置了设置用户标识(setuid)权限后,将基于文件的所有者(通常是root)而非运行可执行文件的用户授予运行该文件的进程访问权限。此特殊权限允许用户访问所有者通常通常只能使用的文件和目录。
setgid权限
设置组标识(setgid)权限与setuid相似,不同之处在于,将进程的有效组ID(GID)更改为文件的组所有者,并根据授予该组的权限为用户授予访问权限。/ usr / bin / mail命令具有setgid权限
您可能还需要看一下fork
,exec
如果想进一步了解Linux如何管理进程和子进程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句