linux系统下权限问题补充

本文发布时间: 2019-Mar-21
文件权限问题补充1,SUID --> 先举一个例子: [root@localhost ~]# which passwd #查看系统外部命令对应的二进制文件/usr/bin/passwd[root@localhost ~]# ls -l /usr/bin/passwd-rwsr-xr-x 1 root root 19876 Jul 17 2006 /usr/bin/passwd[root@localhost ~]# ls -l /etc/shadow-r-------- 1 root root 1131 Jul 30 18:20 /etc/shadow 由以上可发现:passwd 这个文件对应的命令是作用于/etc/shadow这个文件的,root用户作为linux系统中权限最高拥有者,所有的权限问题对它来说都没有意义,所以虽然/etc/shadow 对user用户只有r 权限,root用户一样可以执行文件,但是属组和其他用户的权限都为零(但是linux所有用户都可以用passwd命令该密码),这是为什么呢?答案就是SUID的作用,到这里可能问题差不多该明白了吧,SUID的作用就是如果一个文件被设置了SUID那么属组合其他用户在对文件进行处理的时候都不再以自己的身份而是对应的属主来执行文件,需要注意的是如果原文件的属主有x权限,那么加上后用s表示,否者用S表示chmod u+s /tmp/a.txtchmod u-s /tmp/a.txt2,SGID : 对属组设置S位 (作用于目录!)假设有这样一种场景,公式要做一个项目program,有A B 两个人完成,两人要实现互相能查看对方的所建文件内容,但是其他人不能看,这时候我们可以这样:groupadd program #建立一个公用组useradd zhang #新增一个用户useradd li #新增一个用户mkdir /haha #建立一个公共目录(root身份 root组)chown -R :program /haha #改用户所属组为programusermod -a -G program zhang #增program为zhang的附加组usermod -a -G program li #........................然后发现zhang 和 li 以前的文件都可以让对方访问,但是如果zhang新建一个文件那么文件的属性为 用户为zhang 所属组为zhang ,这样新建的文件依然不能让Li访问。。。。。。这个时候给公共目录加上SGID,所有的问题就解决了,这就是其作用。。。。。chmod g+s /hahachmod g-s /haha3,sticky : 粘滞位 冒险位还是上面的例子,如果在上述情况下,A和B发生矛盾,A一狠心把B的所有文件都删了,那怎么办?这说明这样的权限存在很大的问题,所以我们引入了sticky位chmod o+s /haha #给haha目录加上了冒险位,这个时候A和B就只能读对方的文件却不可以乱删对方的文件了...........001 .....sticky ..........chmod 0755 /file.txt (二进制到十进制的转换)010 .....SGID ..........chmod 2755 /file.txt011 .....SGID sticky ..........chmod 3755 /file.txt100 .....SUID ..........101 .....SUID sticky ..........110 .....SUID SGID ..........111 .....SUID SGID sticky..........4,acl --> access control list --> getfacl --> setfacllinux系统当中root用户有至高无上的权限,所有的命令都可以使用,但是一般的用户却有很多的命令不能使用,比如一般用户A想要让一般用户B能写自己的文件的时候该怎么办?chown ?一般用户是不能用这个命令的....这个时候我们就要用aclgetfacl a.txt #查看文件控制列表setfacl -m u:zhang:rw a.txt #指定zhang用户对a.txt的权限[tao@localhost Czuoye]$ setfacl -m u:zhang:rw a.txt[tao@localhost Czuoye]$ getfacl a.txt# file: a.txt# owner: tao# group: taouser::rw-user:zhang:rw-group::rw-mask::rw-other::r---rw-rw-r--+ 1 tao tao 33 Jul 30 22:18 a.txtsetfacl -m g:zhang:rw a.txt #给组zhang里面的所有用户都给rw权限setfacl -x u:zhang:rw a.txt #撤销用户zhang的权限列表setfacl -x g:zhang:rw a.txt #撤销组对文件的权限


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:08pm
栏目列表