关于Linux文件权限,常用chown、chmod等命令调整它的属主、属组、权限等,由于使用简单,在此不描述。
我们讨论一下较难的一些权限因素:umask、suid、guid、bit、chattr、acl等情形
⑴、umask
Linux系统默认目录最大权限 777
Linux系统默认文件最大权取 666
每个用户都有umask /etc/profile ~/.profile ~/base_profile
例如
用户umask 002
目录:777-002=775 rwxrwxr-x
文件: 666-002=664 rw-rw-r—
用户umask 020
目录:777-020=757 rwxr-xrwx
文件: 666-020=646 rw-r—rw-
⑵、suid s权限属性出现在文件属主执行权限位
仅针对二进制文件(命令),如果文件设置了执行权限和suid属性,所有
执行该文件的用户都使用该文件属主权限,而不是执行用户的权限
显示结果:rws 读写执行+suid rwS 读写 文件执行权限未设置,suig不会生效
chmod u+s /tmp/aaa chmod 4775 /tmp/aaa
⑶、sgid s权限属性出现在目录或文件的属组执行权限位
二进制文件,执行时用文件属主的组权限,前提是文件属主和属组都有执行权限
目录,用户有该目录的rx权限,用户在此目录下的有效组权限是该目录的属权限,
例如在此目录建立的文件或目录,组属性是目录的组属性,而不是执行者的组属性
chmod g+s /tmp/aaa chmod 2775 /tmp/aaa
⑷、sbit 仅针对目录,用户在此目录下建立的目录和文件,仅自己或root才
能删除
chmod o+t /tmp/aaa chmod 1775 /tmp/aaa
⑸、隐藏权限chattr lsattr
chattr + - = a 只能新增,不能删除内容
i 不能删除、改名、新增和写入内容(通过连接档也不行)、
lsattr -a 显示隐藏属性
-r 递归到目录
-d 目录自身(如果参数是目录)
⑹、acl权限在/etc/fstab里加载acl选项支持
setfacl -m 设定 setfacl u:user1:rw file1
-x 删除 setfacl u:user1:w file1
-b 删除所有ACL参数
-R 递归
-k 移除预设参数
-d 预设参数,仅针对目录
getfacl file1 9个权限位后有个+,代表该文件有ACL参数
















