修改权限两大类方法:
一、chmod u+/-r/w/x,g+/-r/w/x,o+/-r/w/x 或a+/-r/w/x 文件/文件夹 -R(递归修改,很危险)
二、chmod 八进制(其实十进制没区别) 文件/文件夹
chmod --reference=fi.txt f2.txt 参考fi.txt来改f2.txt
chgrp 组名 文件/文件夹 只支持修改组
查看目录权限:ll -d 目录
想要新增删除目录里的文件,目录至少有wx权限。(原理:修改文件夹本质上是修改目录中数据块的东西。此问题说明了删除文件与文件本身无关,与文件的直系父目录权限有关。)
对root:修改x执行权限有影响,但读写rw权限无影响
默认权限:umask
说明:文件夹:default=777-umask
文件 : default=666-umask 当有奇数,则此奇数加一,偶数不变
root的umask:0022 (第一个0代表八进制)
普通的umask:0002
永久修改:vim .bashrc 最后添加umask 111。
chmod -R u+X /data 说明:X只对文件夹和已有执行权限的文件增添x权限。
三大特殊权限:SUID(4) GUID(2) Sticky(1)
SUID:使普通用户具有所属人权限(一般都是root),只能加在二进制的可执行文件 (非常危险) chmod u+s /usr/bin/nano
SGID:分两种①、继承所属组的权限,只能加在二进制的可执行文件 (作用到文件上) chmod g+s /usr/bin/cat
②、继承目录的主组(作用到文件夹上) 先chgrp admin /data 再chmod g+s /data 此后/data下创建的文件主组都是admin
Sticky:在目录上加上此权限,则在目录下的所有文件都只能被本用户删除,即使该目录有wx权限 chmod o+t /data
数字表示法:chmod 7644 /data/f1.txt 最前面的7就是。
保险,连root都不可删除:chattr +i 不能执行任何修改操作
chattr +a 只能追加内容
lsattr 查看
若给文件夹加上i后,文件夹中的文件删除不了,但是文件可以修改。原因是文件夹的数据块指定的文件位置锁定了,则文件的数据库块位置不能改动。但文件的数据块内容无所谓。
ACL权限:在保持文件的u、g、o、权限不变,针对某某用户设定的权限。修改后文件会有+标志。(只对xfs自带,ext4需在centos7后有)
ACL的生效顺序:所有者>自定义用户>所属组>自定义组
设置:setfacl -m u:用户名:权限 文件(如0或-是无权限)
setfacl -x u:用户名li 文件 取消li用户的acl
setfacl -b 文件 全部取消
getfacl 文件 查看文件的各类权限
ACL也可以对组设定,把u换为g
复制权限a的权限给b getfacl a |setfacl --set-file=- b
打包会使ACL失效,所有要备份:getfacl -R /tmp/dir >acl.txt 还原:setfacl -R --set-file=acl.txt /tmp/dir
mask权限:只影响除所有者以外的人和组的最大权限,不可超越。
修改mask:chmod或setfacl -m mask::权限 文件
逻辑说明:若已有mask,设置自定义用户权限>mask,则mask会自动上调。若此时在设置mask权限<自定义用户权限,则自定义用户权限自动调低。