centos 权限展示
[root@db02 ~]# ll /etc/hosts
-rw-r--r--. 1 root root 158 Jun 7 2013 /etc/hosts
创建文件的权限算法
#每一个终端,都拥有一个umask属性,来确定新建文件、文件夹的默认权限。一般,普通用户的默认umask是002,root用户的默认umask是022
#目录的默认权限是:777-umask (777减去umask)
#文件的默认权限是:666-umask (666减去umask)
#查看系统的umask
[root@db02 ~]# umask
0022
#配置系统的umask
[root@db02 ~]# umask 0033 #第一个0表示的SUID、SGID、SBIT权限,后面的是rwx权限
文件的基本权限
#文件的基本命令有rwx(读、写、执行)
#涉及到的命令有chmod
#例
[root@localhost ~]# chmod 644 /etc/passwd
[root@localhost ~]# ll /etc/passwd
-rw-r--r-- 1 root root 3137 1月 31 2020 /etc/passwd
文件的属主、属组
#作用于:不同文件的属主、属组对应于rwx,例如-rw-r--r--
#涉及到的命令有chown
#例
[root@localhost ~]# chown dev.dev /etc/passwd
[root@localhost ~]# ll /etc/passwd
-rw-r--r-- 1 dev dev 3137 1月 31 2020 /etc/passwd
文件的特殊权限
#涉及到的权限有SUID、SGID、SBIT
# SUID
作用:如果一个文件(或目录),被设置SUID的权限,那么任何用户执行该文件,都会以该文件属主身份去执行(root或者普通用户),这个权限在系统中也默认使用到过,如下:
[root@db02 ~]# ll /etc/shadow
---------- 1 root root 804 Mar 15 11:42 /etc/shadow #作用于普通用户可以直接修改该文件
# 在授权 suid时,如果文件的属主位上有执行权限,那么在原本 的执行权限位上回 出现s
# 在授权 suid时,如果文件的属主位上没有执行权限,那么在原本 的执行权限位上回 出现S
# SGID
作用:多个用户共享一个目录,如果一个文件,被设置SGID的权限,那么任何用户执行该文件,都会以该 文件属组身份去执行 (共享组),一般团队协作会用到该权限
# 在授权 suid时,如果文件的属组位上有执行权限,那么在原本 的执行权限位上回 出现s
# 在授权 suid时,如果文件的属组位上没有执行权限,那么在原本 的执行权限位上回 出现S
# SBIT
作用:所有用户都可以在含有SBIT权限的目录中操作,每个用户只能删除自己创建的文件(除了 root 之外),这个权限在系统中也默认使用到过,如下:
[root@db02 ~]# ll -d /tmp/
drwxrwxrwt. 9 root root 231 Mar 17 11:43 /tmp/
# 在授权 SBIT时,如果文件的其他用户权限位上有执行权限,那么在原本 的执行权限位上回 出现s
# 在授权 SBIT时,如果文件的其他用户权限上没有执行权限,那么在原本 的执行权限位上回 出现S
root权限
#root权限是系统中的特殊权限,不受rwx权限的限制
#root用户也不能直接修改有系统锁的文件,必须先解锁,再操作
文件锁
#系统文件锁的作用是管理系统中的一些重要文件
#涉及到的命令有chattr、lsattr
#chattr参数
i :设置i权限的文件只能查看,不能写
a :设置a权限的文件只能追加
#chattr配置特殊权限
[dev@localhost ~]$ chattr +i /etc/hosts #添加权限
[dev@localhost ~]$ chattr -i /etc/hosts #解除权限
#lsattr查看特殊权限
[dev@localhost ~]$ lsattr /etc/hosts
-------i--------- hosts #有i权限
使用ACL(访问控制列表)配置文件权限
#ACL命令的作用就是更加方便的配置、查看文件的权限
#涉及到的命令有setfacl、getfacl
添加权限语法: setfacl -[选项] [权限设置] 操作对象
查看权限语法: getfacl 加路径
#setfacl参数
-m 设置一个ACL权限
-x 取消一个ACL权限
-b 清除所有的 ACL 权限
#实例
[root@deng-120 /test]# setfacl -m u:rosen1:rw- /test/abc # rosen1 读和写权限
[root@deng-120 /test]# setfacl -m u:rosen2:--- /test/abc # rosen2 没有任何权限
[root@deng-120 /test]# chown zhang3 abc #修改所有者为zhang3
[root@deng-120 /]# getfacl /test/abc
# file: test/abc #文件所在的路径
# owner: zhang3 #文件附加所有者
# group: root #文件所属组
user::rw- #用户权限
user:rosen1:rw- # rosen1 读和写权限
user:rosen2:--- # rosen2 没有任何权限
group::r-- #用户所属组权限
mask::rw- #除了 root 集体控制附加所有者的最大权限
other::r-- #其他人只读权限