您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
马哥linux运维学习笔记-特殊权限SUID,SGID,STICKY等详解
发布时间:2018-07-01 19:51:49编辑:雪饮阅读()
find查找结果除了用-exec或-ok处理外还可以将结果通过管道传递给xargs。
xargs
xargs有两种处理方式:
有占位符:
find /etc -size +1M | xargs echo {} >> /tmp/test20180701.txt
无占位符:
find /etc -size +1M | xargs echo >> /tmp/test20180701-02.txt
无论xargs的什么处理方式,他的结果输出不是按行来的,而是以空格分割,然后所有结果都是一行的。
特殊权限:
一般文件的权限都是rwx,而有些文件上会有s的标志,这是特殊权限位,rwx分别对应421.
而特殊权限也是由suid、sgid、sticky组成,这三者分别也对应4、2、1
suid:
一般来说运行一个脚本的时候,所产生的进程的属主是调用该脚本的用户,而特殊权限中则就是程序文件自身的属主,即该文件通过ls命令查看到的所属主。
开启、关闭方法
chmod u+s file
chmod u-s file
sgid:
同suid,所属组也会是程序文件自身的所属组
开启、关闭方法
chmod g+s file
chmod g-s file
sticky:
用于在一同个所属组内每人可以自己创建文件,可以删除自己的文件,但不能删除别人的文件。
开启、关闭方法
chmod o+t dir
chmod o-t dir
sticky的一个应用场景:
(1)建立user1、user2、user3并且附加组都是developteam
命令提示:
usermod -a -G developteam user1
usermod -a -G developteam user2
usermod -a -G developteam user3
(2)建立一个文件夹/tmp/project/并将该文件夹所属组设置为developteam并开启sgid权限
命令提示:
chown -R :developteam /tmp/project
chmod g+s /tmp/project/
(3)该文件夹内开启写入权限,以及开启sticky
命令提示:这里权限一定要开启到内部即project/而不是project
chmod o+t /tmp/project/
chmod g+w /tmp/project/
(4)分别用user1、user2、user3在/tmp/project/中创建文件和删除文件,会发现:
1、创建的文件所属组都是developteam:
这是因为第二步时开启了sgid权限,那么有人就会说我开启suid是不是所属主也会变,答案,这里没有做完整的测试,因为目录建立时没有指定所属主,只指定了所属组,若是指定了所属主或许真是这样,我这里没有指定,经过测试在/tmp/project/目录中创建文件的所属主依然是用户本身而不是suid
2、只能创建自己的文件和删除自己的文件,不能删除组内其他人的文件:
这是因为第三步开启了sticky权限
附加:
usermod -a -G groupname username
usermod用户修改用户基本信息,-G是修改其附加组信息,-a是add,结合起来就是新增附加组信息
chown可以单独仅指定组,不指定用户
chown -R :developteam /tmp/project/
ls -ld
-l:以详细格式列表
-d:仅列目录
关键字词:linux,suid,sgid,sticky