基本权限UGO

u 所属主 g 所属组 o 其他人

r (4)读 read w(2)写 write x(1)执行 execute

针对文件:

​ r 读 是否允许可以查看文件的内容

​ w 写 能够修改或删除文件的内容

​ x 执行 是否可以执行该文件

一个用户是否能够删除一个文件,判断依据是该用户对该文件所在的目录是否有写的权限

针对目录:

​ r 读 是否允许可以查看目录里的列表

​ w 写 是否能够删除,重命名目录下的文件和修改目录下文件的属性等

​ x执行 是否可以进入到该目录

正常操作一个目录,至少应该保证r-x


修改权限

chmod ,修改文件的权限 -R (递归修改)把目录以及目录里的所有子对象都更改
语法:
单独修改一个位置的权限

chmod u-x filename ----将用户的访问或执行权限减去

chmod [u|g|o|a]+-=rwx filename

[root@anuo ~]# chmod g=rwx /shared/sysadmin

[root@anuo ~]# chmod o=--- /share/sysadmin

修改文件权限语法
chmod [-R] <a|u|g|o> +-= rwx- /<path>/filename
chmod [-R] 755 /<path>/filename

[root@anuo ~]# chmod 750 /home/harry

[root@anuo ~]# chmod 510 /home/harry/test -R

[root@anuo ~]# chmod 770 /shared/sysadmin

修改文件属性

chown 作用:修改文件拥有者和所属组

语法格式:
1:chown USER:GROUP /<path>/filename ----修改用户和属组
chown USER /<path>/filename ----单独修改用户
chown :GROUP /<path>/filename ----单独修改属组

​ 2:chown USER.GROUP /<path>/filename ----修改用户和属组
chown .GROUP /<path>/filename ----单独修改属组

-R选项:递归(目录下的所有内容全部更改,否则只修改目录)

[root@anuo Desktop]# chown harry:harry /root/Desktop/test        ----修改用户和组
drwxr-xrwx  2 harry harry   4096 7月  13 14:32 test

[root@anuo Desktop]# chown root /root/Desktop/test               ----修改用户
drwxr-xrwx  2 root harry   4096 7月  13 14:32 test

[root@anuo Desktop]# chown :root /root/Desktop/test              ----修改组
drwxr-xrwx  2 root root    4096 7月  13 14:32 test

[root@anuo Desktop]# chown .test /root/Desktop/test              ----修改组

umask默认权限(遮罩权限)

用户创建创建对象的默认权限,是由umask来决定的。

root用户:#umask 0022
普通用户:#umask 0002

目录默认权限是777

普通用户创建目录的默认权限: 777 - 002 = 775

root用户创建目录的默认权限: 777 - 022 = 755

文件默认权限最大权限是666

普通用户创建文件的起始权限:666 - 002 = 664

root用户创建文件的起始权限:666 - 022 = 644

umask + 权限= 临时在当前 终端下更改umask值

修改 ~/.bashrc 只针对当前用户永久修改 umask值

修改 /etc/bashrc 针对所有所用户永久修改umask值

特殊权限

冒险位(setuid) u+s 4000 临时拥有所属主的权限,作用在属主上, 针对命令

chmod u+s filename
chmod 4755 filename

[root@anuo ~]# chmod u+s /sbin/shutdown
[root@anuo ~]# ll /sbin/shutdown
-rwsr-xr-x. 1 root root 60400 5月  28 2013 /sbin/shutdown

强制位(setgid) g+s 2000 任何人在该目录下创建的文件或目录都会强制继承父目录的的属组权限,针对目录。

chmod g+s /shared/sysadmin
chmod 2770 /shared/sysadmin

[mary@desktop0 sysadmin]$ ll /shared/sysadmin/ -d
drwxrws---. 2 root sysadmin 4096 7月  13 12:19 /shared/sysadmin/

黏滞位(stick bit)o+t 1000 针对公共目录,这个目录下面的文件,只有root和创建人可以删除。

chmod 777 /share/sysadmin
chmod o+t /share/sysadmin 

chmod 1777 /share/sysadmin

访问控制列表 ACL

ACL 是在普通权限、特殊权限、默认权限都不能实现时才使用。

ACL是Access Control List的缩写

ACL可以针对单个用户,单个文件或目录来进行r,w,x的权限设定,特别适用于需要特殊权限的使用情况。

getfacl:查看文件/目录的ACL权限

setfacl:设置文件/目录的ACL权限

语法:setfacl [-bkRd][{-m|-x} acl参数] 文件名
例:setfacl -R -m u:huangbing:rwx hb/ --(-R一定要在-m前面,表示目录下所有文件)

选项: -m :设置后续的acl参数

​ -x :删除后续的acl参数

​ -b :删除所有的ACL设定参数

​ -R :递归设置acl参数

​ -d :设置预设的acl参数(只对目录有效,在该目录新建的文件也会使用此ACL默认值)

​ -k :删除预设的ACL参数

例:setfacl  -x u:huangbing  hb/  --删除用户ACL:  

例:setfacl  -b  hb/  --删除所以用户ACL

注:文件设置ACL最大的权限取决于umask的值


文件系统扩展属性

chattr —— 设置文件不能删除(包括root)

语法: chattr + 选项+文件

选项:

​ +a 只能追加内容

​ +i 不能被修改

lsattr 查看文件扩展属性