Linux 可执行文件是否与运行它的用户具有相同的文件权限?
在Unix中,如果我运行的二进制文件与文件混在一起,该二进制文件是否具有与我(运行该二进制文件的用户)相同的文件权限?在大多数情况下,答案是肯定的 但是,如果在该二进制文件上启用了Linux 可执行文件是否与运行它的用户具有相同的文件权限?,linux,unix,file-permissions,setuid,Linux,Unix,File Permissions,Setuid,在Unix中,如果我运行的二进制文件与文件混在一起,该二进制文件是否具有与我(运行该二进制文件的用户)相同的文件权限?在大多数情况下,答案是肯定的 但是,如果在该二进制文件上启用了setuid,setgid位,则情况并非如此 启用了setuid的二进制文件的经典示例 ls -ltra `which passwd` 如果该命令在执行期间不能授予您(执行该命令的用户)与root用户相同的权限来修改文件,如/etc/password或/etc/shadow 看看: setuid权限 在上设置用户标
setuid
,setgid
位,则情况并非如此
启用了setuid
的二进制文件的经典示例
ls -ltra `which passwd`
如果该命令在执行期间不能授予您(执行该命令的用户)与root用户相同的权限来修改文件,如/etc/password
或/etc/shadow
看看:
setuid权限
在上设置用户标识(setuid)权限时
可执行文件,运行此文件的进程被授予基于
文件的所有者(通常是root用户),而不是
运行可执行文件。此特殊权限允许用户
访问通常仅对用户可用的文件和目录
主人
setgid权限
设置组标识(setgid)权限类似于setuid,
除了进程的有效组ID(GID)更改为
文件的组所有者,并且根据
授予该组的权限。/usr/bin/mail命令
setgid权限
如果您想进一步深入了解Linux如何管理进程和子进程,您可能还想看看
fork
和exec
实际上,拥有权限的不是二进制文件,而是进程。该进程由用户启动。因此,该进程将继承该用户当前shell的当前权限、设置和环境。无论当前在特定情况下意味着什么。。。