Unix 环境高级编程 之 理解 rws 权限

本文介绍了Unix系统中文件权限的高级概念,特别是rws权限。rws权限包括Set UID(SUID)和Set GID(SGID),允许执行文件时获得文件所有者的或所属组的权限。SUID在文件所有者执行时赋予临时root权限,如passwd命令。SGID则在执行时赋予执行者文件所属组的权限。此外,文章还提到了sticky位,用于防止用户删除他人在特定目录下创建的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始学习Linux里面的文件权限时,也是蒙蒙的,似懂非懂(尤其是s权限,当时看书的时候一时理解了,过段时间就忘记了)。最近看Unix 环境高级编程的时候,看到第四章第四节(设置用户ID和设置组ID)时才感觉一下明白了?

一、摘自网上查到的关于rwx、rws、rwt的解释:
1、rwx:
linux系统内有档案有三种身份 u:拥有者  g:群组   o:其他人
这些身份对于文档又有下面权限 可以用ls -l 文件名 查看权限信息
r:读权限,用户可以读取文档的内容,如用cat,more查看
w:写权限,用户可以编辑文档
x:该目录具有可以被系统执行的权限

2、s权限:
除了读写执行权限外系统还支持强制位(setuid和setgid)和粘滞位(sticky)
setuid: 设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.
当s权限在文件所有者 x 权限位上时,例如:-rwsr-xr-x,此时称为Set UID,简称为SUID的特殊权限,即当执行该文件时将具有该文件所有者的权限。
例如:有一个普通用户user1,当user1修改密码时,执行passwd(passwd该文件权限为:-rwsr-xr-x. 1 root root)这个命令
1. user1对于 /usr/bin/passwd 这个程序具有 x(执行)权限,表示user1 能执行 passwd 这个命令
2. passwd 文件的所有者是 root 
3. user1 执行 passwd 命令的过程中,会暂时获得 root用户的权限
4. /etc/shadow(文件权限:---------- 1 root root) 就可以被 user1 所执行的 passwd命令所修改。
当s权限在文件组 x 权限上时,例如:-rwx--s--x,此时称为Set GID,简称为SGID的特殊权限,执行者在执行该文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值