centos权限总结

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--          #其他人只读权限