linux基础之权限管理

1ACL权限

1.1.开启

mount -o remount,acl   #重新挂载根分区,并挂载加入ACL权限

永久开启分区ACL权限:
第一步:修改vim /etc/fstab在defaults后面加acl  #开机自动挂载文件
UUID=1a0b2bc7-847f-49d8-baa7-2903e818cf75 /boot     ext4    defaults,acl        1 2
第二步:重启挂载文件mount -o remount

1.2.查看与设定

查看ACL权限:getfacl [文件名]
设定权限:setfacl [-m-x-b-d-k-R] [文件名]
-m设定权限
-x删除指定的权限
-b删除所有的权限
-d设定默认权限
-k删除默认权限
-R 递归设定权限

例如: setfacl -m u:acltest:rx  /test1  #给用户acltest赋予rx权限  格式[u:用户名:权限]
设定前drwxrwx---. 2 root testgroup 6 Feb 24 03:28 test1
设定后drwxrwx---+ 2 root testgroup 6 Feb 24 03:28 test1

[root@MiWiFi-R3L-srv home]# getfacl test1
# file: test1
# owner: root
# group: testgroup
user::rwx
user:acltest:r-x
group::rwx
mask::rwx
other::---

扩展:给组设定ACL权限
setfacl -m g:testgroup2:rwx test2   #给组testgroup2赋予rwx权限  格式[g:组名:权限]

1.3最大有效权限与删除ACL权限

mask:是用来指定最大有效权限的。如果设定后仅可以无视ACL用户设置的最大权限
setfacl -m m:rx test2   #设定mask值为rx  格式[m:权限]

删除ACL用户权限: setfacl -x u:用户名 文件名
删除文件的所有ACL权限:  setfacl -b 文件名
删除ACL组权限: setfacl -x g:组名 文件名

1.4默认ACL权限与递归ACL权限

递归: setfacl -m u:用户名:权限 -R 文件名 #只给目前所有子目录设定权限,而新建目录没有权限
默认: setfacl -m d:u:用户名:权限 文件名  #父目录设定了ACL默认权限,以后父目录中所有新建的子目录都会继承父目录的ACL权限

2文件特殊权限

2.1.SetUID

root@MiWiFi-R3L-srv home]# ll -h /etc/shadow
----------. 1 root root 1.6K Feb 24 03:39 /etc/shadow
[root@MiWiFi-R3L-srv home]# ll -h /bin/passwd 
-rwsr-xr-x. 1 root root 35K May 11  2019 /bin/passwd
可以看到shadow文件不具有任何权限,而用户修改密码其实是修改shadow文件又是怎么操作呢,是因为passwd命令具有rwsr权限
,这个s就是SetUID权限,就是可以让普通用户临时化身为root权限,从而去执行任何操作

注意:SetUID的4个功能
只有可以执行的二进制程序才能设定该权限
命令执行者要对该程序拥有x权限,否则设定后权限位会以s变成S的方式来报错
命令执行者在执行程序时获得该程序文件属主的身份(root)
SetUID权限只在该程序执行过程中有效

设置: chmod 4755 文件名  4代表SUID
设置: chmod u+s 文件名   
取消: chmod 755 文件名
取消: chmod u-s 文件名

2.2SetGID

[root@MiWiFi-R3L-srv home]# ll /var/lib/mlocate/mlocate.db
-rw-r-----. 1 root slocate 3134543 Feb 24 05:21 /var/lib/mlocate/mlocate.db
[root@MiWiFi-R3L-srv home]# ll /usr/bin/locate 
-rwx--s--x. 1 root slocate 48552 May 11  2019 /usr/bin/locate
可以看到mlocate.db文件的组用户是没有执行权限的,组中的用户能通过locate命令查询的真正原因是因为locate命令
的组用户有s权限,这里的s就是SetGID权限,就是可以让组身份临时升级为该文件的属组(root组),那么属组的用户就可以执行了

注意:SetGID针对文件的作用
只有可执行的二进制程序菜能设置SetGID权限
命令执行着要对该程序拥有x权限
命令执行在执行程序的时候,组身份升级为该程序文件的属组
SetGID权限一样只有在该程序执行过程中有效
注意:SetGID针对目录的作用
普通用户必须对此目录具拥有rx权限
普通用户在此目录中的有效组会变成此目录的属组
若普通用户对此目录拥有w权限,新建的文件的默认属组是这个目录的属组

设置: chmod 2755 文件名  2代表GUID
设置: chmod g+s 文件名   
取消: chmod 755 文件名
取消: chmod g-s 文件名

2.3Sticky BIT(粘着位权限)

[root@MiWiFi-R3L-srv home]# ll -d /tmp/
drwxrwxrwt. 17 root root 4096 Feb 24 05:18 /tmp/
可以看到临时目录tmp的其他用户有t权限,意味着所有的用户都只能删除自己创建的文件而不能删除别人创建的文件

注意:只对目录有效
普通用户对该目录拥有wx权限
如果没有粘着位权限,因为普通用户拥有w权限,所有可以删除此目录下所有文件,一旦赋予了粘着位权限,除了root可以删除所有有文件
,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户创建的文件

设置: chmod 1755 目录名  1代表GUID
设置: chmod o+t 目录名   
取消: chmod 755 目录名
取消: chmod o-t 目录名

3文件系统属性chattr权限

语法:chattr [+-=] [-i-a] [文件或目录名]
+ 增加权限
- 删除权限
= 等于权限
-i 如果对文件设置,则不允许对文件进行删除/改名,添加和修改数据;如果对目录,则只能修改目录下文件的数据,但不允许建立和删除文件
-a 如果对文件设置,则只能在文件中增加数据,但是不能删除和修改数据;如果对目录设置,则只允许在目录中建立和修改文件,但是不允许删除

查看文件系统属性
lsattr [-a-d] 文件名
-a 显示所有文件和目录
-d 若目标是目录,仅列出目录本身的属性,而不是子文件的属性

4系统命令sudo权限

注意:1.root把本来只能超级用户执行的命令赋予普通用户执行
     2.sudo的操作对象是系统命令
使用:visudo  #实际是修改 vim /etc/sudoers
root    ALL=(ALL)                        ALL
用户名  被管理主机的地址=*(可使用的身份)    授权命令(绝对路径)
%wheel  ALL=(ALL)                        ALL
%组名   被管理主机的地址=*(可使用的身份)    授权命令(绝对路径)

例如:
sc      ALL=/sbin/shutdown   
#意思就是sc用户可以使用root身份在本机上重启服务器
sudo -l  #查看root赋予自己的权限
sc如何使用:    #sudo /sbin/shutdown 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值