文件基本权限 对于文件:r 读 w 写 x 执行 对于目录 1. r 读(看到目录里有什么) 2. w 建文件、删除、移动 3. x进入 修改权限的相关命令 chmod:修改文件权限 u+r g-w o=x a+x +x 使用权限的二进制表示法,十进制表示法

r-- -w- --x
100 010 001

r=4;w=2;x=1;


chown 修改文件拥有者和所属组 语法 1.chown user:group file 2.chown user file 3.chown :group file chown -R user:group dir #递归修改dir目录下已经存在的文件或目录的所有者和组


一个文件只有读的权限,拥有者是否可以写这个文件? 拥有者不能用>或>>,用vim强制写入 [root@localhost ~]# ll /home/zs/zs.txt -r--r--r--. 1 zs zs 3 1月 21 17:58 /home/zs/zs.txt [zs@localhost ~]$ echo "aaaaa" >> zs.txt -bash: zs.txt: 权限不够 [zs@localhost ~]$ echo "a" > zs.txt -bash: zs.txt: 权限不够 [zs@localhost ~]$ vim zs.txt


设置文件默认权限的补码

系统用户:umask=0022 普通用户:umask=0002 计算方法 1.文件默认权限=666-umask 2.目录默认权限=777-umask #这种方法不严谨 应该是这样计算 文件的默认权限= (666转二进制)与(umask转二进制取反) 目录的默认权限=(777转二进制)与(umask转二进制取反) 如:umask=033(000 011 011取反111 100 100) 文件默认权限:110 110 110 与 111 100 100=110 100 100=644 目录默认权限:(111 111 111) 与(111 100 100)=744


特殊权限 SUID=4 SGID=2 Stickybit=1 SUID 1.限定:只能设置在二进制可执行程序上面。对目录设置无效 2.功能:程序运行时的权限从执行者变更成程序所有者


SGID 1.限定:既可以给二进制可执行程序设置,也可以给目录设置。 2.功能:在设置了SGID权限的目录下建立文件时,文件会的属组会改成上一级目录的属组,但权限位没改成s; 在设置了SGID权限的目录下建立目录时,目录的属组改成了上组级目录的属组,权限位也改成了s.


Stickybit 1.限定:只作用于目录 2.功能:目录下创建的文件只有root、文件创建者、目录所有者才能删除


acl权限 getfacl file setfacl -m u:username:rwx file setfacl -m g:username:rwx file


getfacl directory setfacl -R -m u:username:rwx directory setfacl -R -m g:username:rwx directory


setfacl -x u:username file #删除单个权限 setfacl -b file #删除这个文件所有acl权限


文件系统扩展属性 chattr lsattr a #只能追加内容 i #不能被修改 chattr +a file chattr +i file lsattr file

注意:umask 是要过滤的值

umask -S这个值是要保留的值