文件权限
1.基本权限UGO
- U:owner,属主
- G:group,属组
- O:other,其他用户
r:read(读取),数字设定为4
w:write(写入),数字设定为2
x:execute(执行),数字设定为1
其中图片上可知: - owner的权限为“rw-”(读写),数字可表示为4+2=6
- group的权限为“r-”(读),数字表示为4
- other的权限为“r-”,同理为4
2.设置文件属性与权限
chown:修改文件属主,属组
- chown hanping xxx:改变xxx文件的所有者为hanping
- chown xiaohan。linux xx:改变xx文件的属主为xiaohan,属组为linux
- chown root ./abc:改变abc这个目录的所有者是root
- chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root
chgrp:修改文件属组
- chgrp root xxx:改变xxx所属的组为root
chmod:修改文件权限
- chmod 755 xxx:赋予xxx权限rwxr-xr-x
- chmod u=rwx,g=rx,o=rx abc:同上
- chmod u-x,g+w xxx:给xxx去除用户执行的权限,增加组写的权限
- chmod a+r xxx:给所有用户添加读的权限
3.基本权限ACL
UGO权限只针对一个用户、一个组与其他用户,使用上有局限性,ACL主要提供传统的UGO的r、w、x权限之外的具体权限设置,可以对单一用户、单一文件或目录进行权限设置
3.1查看ACL权限
- getfacl xxx
3.2添加ACL权限
添加用户权限
- setfacl -m u:username:permissions filename
添加组权限 - setfacl -m g:groupname:permissions filename
其中,username是用户的名称,groupname是组的名称,而permissions表示权限,如r(读取)、w(写入)和x(执行)等。
3.3删除ACL权限
删除用户权限
- setfacl -x u:username filename
删除组权限 - setfacl -x g:groupname filename
4.ACL的高级特权
4.1最大有效权限mask
当mask权限为“rw-”而xxx用户的权限为“r-x”时,其"相与"后的最终权限为“r--”,但mask并不能影响所有用户,例如owner和other
5.高级权限
5.1SUID权限
SUID(Set User ID)是一种文件权限机制,允许一个执行文件在执行过程中暂时获得文件所有者的权限。这对于某些需要特殊权限执行的程序非常有用。
设置SUID权限
- chmod u+s filename
5.2SGID权限
SGID(Set Group ID)是一种文件权限机制,允许一个执行文件在执行过程中暂时获得文件所属组的权限。通常用于确保多用户能够协同工作,同时具有对特定文件的写入权限。
设置SGID权限
- chmod g+s dirname
5.3Sticky权限
Sticky权限是一种目录权限机制,防止非目录所有者删除其他用户创建的文件。通常用于一些公共目录,例如/tmp,确保用户只能删除自己的文件。
设置Sticky权限
- chmod +t dirname
6.进程掩码umask
6.1进程掩码概述
进程掩码,通常称为umask,是一个用于限制新创建文件权限的值。它作为一个权限掩码,用来屏蔽掉权限中的特定位,确保新创建的文件或目录不会赋予过于宽松的权限。
6.2umask的作用
- umask的主要作用是确定文件和目录的默认权限。系统中的每个用户和进程都有一个umask值,它与创建文件时所用的权限进行按位与运算,从而确定最终的实际权限。
- umask值通过三位八进制数来表示,分别对应文件所有者、组和其他用户的权限位。例如,umask值为022表示新创建的文件默认会去掉组和其他用户的写权限。
- 设置umask值
umask 022
6.3修改umask值
- 永久修改: 修改用户的shell配置文件(如/.bashrc或/.bash_profile)。
在配置文件中设置umask值
umask 022 - 临时修改: 直接在命令行中设置umask值。
临时设置umask值
umask 022