Linux中的权限设定2
5.umask预留权限的使用及更改
umask------系统建立文件时默认保留的权限(预留阀值)
如上操作,建立一个目录时默认权力为755,建立一个文件时默认权力为644
可得出关系为:777(满权限)-022(预留阀值)=755(目录权限)-111=644(文件目录)
umask 数字------临时设定系统预留权限
临时设定系统预留权限为077
注:此更改umask的方式是临时的,当关闭Terminal后,umask又恢复默认设置
永久更改umask
vim /etc/profile-------更改系统配置文件
上面002为普通用户的umask;022为超级用户的umask
将超级用户的umask改为077vim /etc/bashrc-------更改shell配置文件
同上,上面002为普通用户的umask;022为超级用户的umask
将超级用户的umask改为077
source /etc/profile------让更改立即生效
source /etc/bashrc
如下,永久更改已完成
6.特殊权限
sticky------粘制位
作用:只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除
设定方式:chmod o+t dir 或 chmod 1xxx dir
示例:
首先在根目录下建立一个目录,并更改此目录权限为777:
建立2个新用户zhang和lee,并用zhang用户在该目录下建立一个文件,并尝试lee用户执行删除命令:
如上用户zhang建立的文件已被lee用户删除,不符合常理;
现在我们用粘制位更改/public目录权限,再次进行试验:
如上,经过设定后lee用户已无法删除zhang用户建立的文件,符合常理性。
suid------冒险位
作用:只针对与2进制可执行文件
当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
监控命令:watch -n1 “ps ax -o user,group,comm | grep cat”
当执行cat命令时可见:
当进行冒险位更改后,用student用户执行cat命令可发现,进程的所有人还是超级用户:
sgid------强制位
作用:
1.对文件:只针对与2进制可执行文件,当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
2.对目录:当目录上有sgid时任何人在此目录中建立的文件都属于目录的所有组
设定方式:chmod g+s file | dir 或 chmod 2xxxx file | dir
7.acl权限列表
作用:
让特定的用户对特定的文件拥有特定的权限
acl列表查看
getfacl file------查看acl开启的文件的权限
#file :file------文件名称
#owner: root------文件的拥有者
#group: root------文件的拥有组
user::rw- ------文件拥有人的权限
group::r-- ------ 文件拥有组的权限
other::r-- ------其他人的权限
mask::rwx------能赋予用户的最大权力伐值
acl列表的管理
getfacl file------开启acl列表
setfacl -m u:username:rwx file------设定username对file拥有rwx权限
setfacl -m g:group:rwx file------设定group组成员对file拥有rwx权限
setfacl -x u:username file------从acl列表中删除username
setfacl -b file------关闭file上的acl列表
示例:
让用户westos对/pub目录没有任何权力:
mask值
在权限列表中mask标示能生效的权力
当用chmod减小开启acl的文件权限时,mask值会发生改变
chmod g-w file
如果要恢复mask值:setfacl -m m:rw file
acl的默认权限设定
acl默认权限只针对目录设定
注:acl权限只针对完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限
setfacl -m d:u:student:rwx /mnt/westos
setfacl -k /mnt/westos/------取消默认权限设定