Linux系统安全:用户权限、脚本安全与资源管理
1. 用户ID与权限
在Linux系统中,用户ID(uid)和组ID(gid)是内核中表示用户和组的唯一非负整数。用户ID 0和组ID 0通常与超级用户root及其用户私有组(UPG)相关联,但部分Linux发行版会将新用户分配到系统默认组,如staff或users。
每个进程都有一组ID,包括有效用户ID、真实用户ID和保存用户ID(组ID情况类似)。真实用户ID与创建进程的用户ID一致,而有效用户ID用于验证进程执行系统调用(如访问文件)时的权限。通常,真实用户ID和有效用户ID相同,但在某些情况下会不同,这可用于临时提升进程的权限。
可以使用 chmod u+s <executableBinary> 命令设置可执行二进制文件的setuid位。若setuid位被设置,进程的保存用户ID将被设置为可执行二进制文件的所有者;否则,设置为真实用户ID。当用户执行程序时,相应进程的有效用户ID可以设置为保存用户ID,而真实用户ID仍指调用程序的用户。
例如, passwd 命令允许用户更改密码,即修改受保护的系统文件 /etc/passwd 。为了让普通用户在不使该文件全局可访问的情况下访问和修改它, /usr/bin/passwd 二进制文件的setuid位被设置。由于该二进制文件由root拥有,当用户执行 passwd 时,相应进程的保存用户ID设置为0,有效用户ID也设置为0,从而允许访问 /etc/passwd 文件。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



