一.文件的默认权限
1.如果不加以修改,Linux中新建一个文件以及目录的默认权限是:
对于目录,默认权限=777-umask
对于文件,默认权限=666-umask(文件默认无执行权限)
2.uamsk的修改
vim /etc/bashrc 71行是普通用户的更改,73是超级用户的更改
vim /etc/profile 60行是普通用户的更改,62是超级用户的更改
source /etc/bashrc ##刷新bash配置
source /etc/profile ##刷新系统配置
二.特殊权限(stickyid/sgid/suid)
stickyid ###强制位
o+t ###之针对目录,当一个目录上有t权限时,这个目录中的文件只能被文件拥有者删除
t=1
chmod o+t directroy
chmod 1777 directory
sgid ###粘制位
g+s ##针对目录,在目录中创建的文件都自动归属到目录所在组,针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的
chmod g+s file|directory
chmod 2777 file|directory
suid ###冒险位
u+s ###针对文件,文件记录动作在执行时是以文件所有人身份执行的,与是谁发起的无关
chmod u+s file
chmod 4777 file
三.细部权限规划
1.什么是ACL(Access Control list权限列表)
对文件的权限进行附加说明的权限设定方式
2.ACL提供传统的owner/group/other的read/write/execute之外的细部权限设定。(可以针对单一的使用者,目录等等)
3.如何查看权限列表:
[root@aclhost mnt]# ls -l file
-rw-r--r--. 1 root root 0 Nov 7 09:14 file
|
如果此位为“.”,代表这位上没有权限列表
如果此位为“+”,代表权限权限列表存在
[root@aclhost mnt]# getfacl file
# file: file ##文件名称
# owner: root ##文件所有人
# group: root ##文件所有组
user::rw- ##所有人权限
user:student:rw- ##特定用户权限
group::r-- ##所有组权限
mask::rw- ##特定用户生效的最大权限
other::r-- ##其他人权限
4.1 如何设定ACL权限:
setfacl
setfacl -m <u|g|m>:<username|groupname>:权限 filename ##设定acl
setfacl -x <u|g>:<username|groupname> filename ##去除某个用户或者组的acl
setfacl -b filename ##删除文件上的权限列表
4.2 ACL默认权限
默认权限针对目录使用,是让目录中所有新建文件都继承此权限,这个权限对目录本身不生效,并且不会影响目录中已经存在的文件
setfacl -m d:<u|g|o>:<username|group>:rwx directory ##设定默认权限
setfacl -x d:<u|g|o>:<username|group> directory ##撤销目录中的某条默认权限
4.3 mask是什么东西?
有效权限:用户or组所设置的权限必须要存在于mask的权限设置范围内才会生效。
5.在比如rhel6以及之前的版本中,用户建立的分区时不支持acl的,如果需要,必须加载acl参数
mount -o remount,acl 设备
vim /etc/fstab
设备 挂载点 类型 defaults,acl 0 0
5.1查看文件系统是否支持ACL
xfs文件系统已经默认/强制开启了ACL,不用在mount时增加参数acl,在fstab加acl参数时会报错(acl是不识别选项)
(同步文件系统操作)
ext系统可以使用
dumpe2fs -h 查看acl是否开启