Linux系统中的权限管理
四、系统默认权限设定
系统本身存在的意义是共享资源。从安全角度讲,系统共享的资源越少,开放的权力越小,安全性越高。既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放,把不安全的权力默认保留。
如何保留权力
1)查看保留权力
#umask表示系统保留权力
umask #查看保留权力
umask 权限值 #临时设定系统预留权力
#文件默认权限 = 777-umask-111
#目录默认权限 = 777-umask
#umask值越大系统安全性越高
2)临时更改
#umask临时更改
umask 077
3)永久更改
#永久更改
vim /etc/bashrc ##shell系统配置文件
vim /etc/profile ##系统环境配置文件
source /etc/bashrc ##source作用时使我们更改的内容立即被系统识别
source /etc/profile
五、文件用户用户组管理
chown username file
: 更改文件拥有者
chgrp groupname file
:更改文件拥有组
chown username:groupname file
:同时更改文件的拥有者和拥有组
chown|chgrp -R user|group dir
:更改目录本身及目录中内容的拥有者或者拥有组
六、特殊权限
1)stickyid 粘制位
针对目录:如果一个目录stickyid开启,那么这个目录中的文件只能被文件所有人删除
chmod 1原始权限 dir
chmod o+t dir
实验:
如上图所示,lee用户不仅可以删除它自己的文件,也可以删除不属于自己的文件,这显然不合常理
如何解决此问题:
chmod 1777 /pub
chmod o+t /pub
#以上两条命令都可以开启pub目录的t权限
lee用户只能删除它自己的文件,不能删除不属于自己的文件
2)sgid 强制位
a)针对目录: 目录中新建的文件自动归属到目录的所属用户组中
chmod 2源文件权限 dir
chmod g+s dir
实验: westosfile自动复制了/devops目录的用户组
b)只针对二进制的可执行文件(c程序)
当运行二进制可执行文件时都是用文件拥有组身份运行,和执行用户无关
实验: 在lee用户下以root用户身份执行cat
3)suid 冒险位
只针对二进制的可执行文件(c程序)
当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关
chmod 4原属性 file
chmod u+s file
实验: 在lee用户下执行cat,其拥有者是root
七、acl权限列表
Access Control Lists 访问控制列表
功能:在列表中可以设定特殊用户对与特殊文件有特殊权限
1)acl列表开启标识
-rw-rw---- 1 root caiwu 0 Apr 18 09:03 westosfile
^
没有"+"代表acl列表未开启
-rw-rw----+ 1 root caiwu 0 Apr 18 09:03 westosfile
^
acl列表功能开启
2)acl列表权限读取
getfacl westosfile #显示内容分析
file: westosfile #文件名称
owner: root #文件拥有者
group: root #文件拥有组
user::rw- #文件拥有者权限
user:lee:rw- #特殊指定用户权限
group::r-- #文件拥有组权限
group:westos:--- #特殊指定的用户组的权限
mask::rw- #能够赋予特殊用户和特殊用户组的最大权限阀值
other::r-- #其他人的权限
注意:
当文件权限列表开启,不要用ls -l
的方式来读取文件的权限,因为此时查看到的是mask的阈值
3)acl列表的控制
setfacl -m u:lee:rw westosfile
:设定
setfacl -m g:westos:rw westosfile
setfacl -m u::rwx westosfile
setfacl -m g::0 westosfile
setfacl -x u:lee westosfile
:删除列表中的lee
setfacl -b westosfile
:关闭
4)acl权限优先级
拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他
实验1: 权限优先级拥有者 > 特殊指定用户
实验2: 权限优先级权限多的组 >权限少的组
5)acl mask 控制
mask是能够赋予指定用户权限的最大阀值,当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力,mask就会发生变化,使用setfacl -m m:权限 文件
恢复:
6)acl列表的默认权限
setfacl -m u:lee:rwx /mnt/westosdir
:只对于/mnt/westosdir目录本身生效
setfacl -Rm u:lee:rwx /mnt/westosdir
:对于/mnt/westosdir目录和目录中已经存在的内容生效
(以上的命令之针对与存在的文件生效,新建文件是不会被设定的)
setfacl -m d:u:lee:rwx /mnt/westosdir/
:针对/mnt/westosdir目录中新建文件生效
setfacl -k /mnt/westosdir/
:删除/mnt/westosdir目录默认的acl参数
八、attr权限
attr权限限制所有用户
i
:不能作任何的更改
a
:能添加不能删除
lsattr dir|file ##查看attr权限
chattr +i|+a|-i|-a dir|file ##设定attr权限