passwd中特殊权限s的个人理解
2017-04-12 18:10
155 查看
Linux引入suid、sgid、sticky这三种特殊权限,能够更加方便、有效和安全地控制文件。 当在一个目录或文件上加入suid特殊权限时,如过原来目录或文件的属主具有x(执行)权限,就会用小写的s来替代x;如果原来文件或目录不具有x(执行)权限,就会用大写的S来代替x。 同样,sgid和suid相同,如过原来目录或文件的属组具有x(执行)权限,就会用小写的s来替代x;如果原来文件或目录不具有x(执行)权限,就会用大写的S来代替X。 同样,如果在一个文件或目录上加入sticky权限时,若原文件或目录的其他用户有x(可执行)权限时,就用小写t代替x;如果原文件或目录没有x权限时,就用大写T替代x权限。下例说明。 可以chmod的字符或数字的方式修改特殊权限,下例以数字方式实现。# -rw-r--r-- 1 root root 0 Nov 6 07:40 test1 ugo都没执行权限
# chmod 7644 test1 原权限是644,都加上特殊权限
# -rwSr-Sr-T 1 root root 0 Nov 6 07:43 test1 属主、属组、其他用户执行权限变为S、S、T.
# -rwxr-xr-x 1 root root 0 Nov 6 07:43 test2 ugo都有执行权限
# chmod 7755 test2 原权限是655,都加上特殊权限
# -rwsr-sr-t 1 root root 0 Nov 6 07:49 test2 属主、属组、其他用户执行权限变为s、s、t. 实验:如果一个组为development,该组中有三个用户完成一个项目。该项目在路径/tmp/project/目录下进行相关的资源共享,要求 @三个用户user1、user2、user3都可以在该目录下创建文件@彼此之间可以互相查阅并修改对方文件@彼此不可删除除自己创建外的文件。
步骤:
# by daniao
# groupadd development
# mkdir /tmp/project
# chown -R :development /tmp/project/
# useradd user1 依次创建
# usermod -a -G development user1 依次将用户加入组
# 通过 ls -l 查看project 其他用户没有w权限,则chmod g+w /tmp/project/
# 此时都可以创建文件但彼此不可访问修改自己创建的文件 则用到了SGID权限。
chmod g+s /tmp/project/
此时用户可以查看并修改彼此文件也能删除,这里需要通过user1-3用户进入/tmp/project/中创建各 自文件就可以看出
# 通过Sticky权限 chmod g+t /tmp/project/ 不能删除他人文件
以上是个人对特殊权限的思路总结,没有配相关截图。
补充:上述这样给s权限是不安全的,如果想user1创建的文件给user2查阅则可以通过文件系统访问控制列表FACL来实现,
user1$ touch /tmp/project/test
getfacl /tmp/project/test 获取test文件的facl
# file: tmp/project/3.bird
# owner: bird
# group: development
user::rw-
group::rw-
other::r--
setfacl -m u:user2 rw /tmp/project/test 后user2就能正常访问ueser1的文件了
通过setfacl -x u:user2 /tmp/project/test 去除
也可以通过setfacl -m d:u:user2 rw 给/tmp/project/目录权限这个样user1在该目录下创建的任何文件,user2都可以正常修改访问。
# chmod 7644 test1 原权限是644,都加上特殊权限
# -rwSr-Sr-T 1 root root 0 Nov 6 07:43 test1 属主、属组、其他用户执行权限变为S、S、T.
# -rwxr-xr-x 1 root root 0 Nov 6 07:43 test2 ugo都有执行权限
# chmod 7755 test2 原权限是655,都加上特殊权限
# -rwsr-sr-t 1 root root 0 Nov 6 07:49 test2 属主、属组、其他用户执行权限变为s、s、t. 实验:如果一个组为development,该组中有三个用户完成一个项目。该项目在路径/tmp/project/目录下进行相关的资源共享,要求 @三个用户user1、user2、user3都可以在该目录下创建文件@彼此之间可以互相查阅并修改对方文件@彼此不可删除除自己创建外的文件。
步骤:
# by daniao
# groupadd development
# mkdir /tmp/project
# chown -R :development /tmp/project/
# useradd user1 依次创建
# usermod -a -G development user1 依次将用户加入组
# 通过 ls -l 查看project 其他用户没有w权限,则chmod g+w /tmp/project/
# 此时都可以创建文件但彼此不可访问修改自己创建的文件 则用到了SGID权限。
chmod g+s /tmp/project/
此时用户可以查看并修改彼此文件也能删除,这里需要通过user1-3用户进入/tmp/project/中创建各 自文件就可以看出
# 通过Sticky权限 chmod g+t /tmp/project/ 不能删除他人文件
以上是个人对特殊权限的思路总结,没有配相关截图。
补充:上述这样给s权限是不安全的,如果想user1创建的文件给user2查阅则可以通过文件系统访问控制列表FACL来实现,
user1$ touch /tmp/project/test
getfacl /tmp/project/test 获取test文件的facl
# file: tmp/project/3.bird
# owner: bird
# group: development
user::rw-
group::rw-
other::r--
setfacl -m u:user2 rw /tmp/project/test 后user2就能正常访问ueser1的文件了
通过setfacl -x u:user2 /tmp/project/test 去除
也可以通过setfacl -m d:u:user2 rw 给/tmp/project/目录权限这个样user1在该目录下创建的任何文件,user2都可以正常修改访问。
相关文章推荐
- shiro 权限认证的原理,个人的理解
- 0220自学Linux_逻辑理解用户进程权限相关+理解文件内各字段(passwd,shadow,group)
- RBAC基于角色的权限控制个人理解
- tcp三次握手四次挥手原理(个人总结的特殊理解)
- 权限管理以及shiro的简述(个人理解)
- 个人理解Linux文件权限--以前记录的,根据鸟哥的第二版去解释的
- 理解基本权限以及特殊权限:Suid 、Sgid、Sticky以及acl
- java 访问权限private,默认(默认包权限),protected(继承访问权限),public的个人理解
- RBAC基于角色的权限控制个人理解
- 关于Windows文件属性安全中“特殊的权限”的理解
- firefox推荐与个人理解的css书写顺序
- 在MSF中怎么区分易混淆的工作项类型:Bug、风险和问题(我个人的理解)
- 权限学习--BlueDavy之技术Blog漫谈权限系统之结尾篇(开源产品、个人观点、知识体系)
- size_t,__T,_T,TEXT,_TEXT等一些特殊宏的理解
- 数据仓库的个人理解
- 房屋 70年使用权到期后怎么办?—— 个人的几点理解
- Ajax的一些个人理解
- 关于内核中spinlock的一些个人理解
- 我对回调的个人理解
- 商业智能的个人理解