权限管理一

一、ACL 权限

如果我们只想要某一用户对文件或者有权限,可以使用acl权限。

1、查看acl是否开启
[root@localhost ~]# dumpe2fs -h /dev/mapper/VolGroup-lv_root # /设备文件名,可以用mount查看。

Default mount options:    user_xattr acl#默认开启

#如果没有开启,手工开启分区的 ACL 权限
[root@localhost ~]# mount -o remount,acl / # 重新挂载根分区,并挂载加入 acl 权限

也可以通过修改/etc/fstab 文件,永久开启 ACL 权限

[root@localhost ~]# vi /etc/fstab 
/dev/mapper/VolGroup-lv_root /                       ext4    defaults,acl        1 1   # 加入 acl 

[root@localhost ~]# mount -o remount /     #重新挂载 / 分区
2、ACL 基本命令
getfacl  文件名  查询文件的 ACL 权限 

[root@localhost ~]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
group::r-x
other::---

setfacl  选项  文件名  设定 ACL 权限
-m       设定 ACL 权限   
-b       删除 ACL 权限   
-R       只能对目录使用,递归赋予权限
-x       删除单个用户的 ACL 权限

用法:
    setfacl  -m  u:用户名:权限   文件名  
    setfacl  -m  g:组名:权限   文件名 
    setfacl  -x  u:用户名   文件名
[love2@localhost ~]$ ls /root
ls: 无法打开目录/root: 权限不够,此时我们可以对love2用户授予acl权限,使其能够对/root目录由访问权限。
[root@localhost ~]# setfacl -m u:love2:rx /root

注意:如果给目录赋予 acl 权限,两条命令都要输入,递归与默认的区别:   
setfacl -m u:love2:rx -R /root        只对已经存在的文件生效   
setfacl -m d:u:love2:rx -R /root/   只对以后新建的文件生效
3、 最大有效权限 mask
[root@c1 ~]# getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
user:love2:rw-
user:love1:r--
group::r--
group:hr:rwx
mask::rwx
other::---

[root@c1 ~]# setfacl -m m::- file1 #设置mask权限

[root@c1 ~]# getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
user:love2:rw-                  #effective:---
user:love1:r--                  #effective:---
group::r--                      #effective:---
group:hr:rwx                    #effective:---
mask::---
other::---
#mask权限除了不影响所有者和其他人的权限,其他的都会影响。
#一旦重新设置acl权限,mask权限就会恢复。
4、删除acl权限
[root@localhost ~]# setfacl -x u:love2 /root/ # 删除指定用户和用户组的 ACL 权限 
[root@localhost ~]# setfacl -b /root # 会删除文件的所有的 ACL 权限

二、sudo 授权

普通用户执行某些命令没有权限时,可使用sudo命令赋予部分管理员权限。

1 root 身份:

visudo 赋予普通用户权限命令,命令执行后和 vim 一样使用

#Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
#用户名  目标主机= (可使用的身份) 授权命令(绝对路径) 
#Allows people in group wheel to run all commands
%wheel        ALL=(ALL)       ALL 
% 组名 被管理主机的地址 = (可使用的身份) 授权命令(绝对路径) 

例子

1)授权用户 love2 可以重启服务器,则visudo添加如下行: 
[root@localhost ~]# visudo / vim /etc/sudoers
love2  ALL=(root)   /sbin/shutdown –r now 
[user1@localhost ~]$ sudo -l #查看可用的授权  

2)授权love2用户可以添加其他普通用户  
love2  ALL=/usr/sbin/useradd    #赋予 love2 添加用户权限.命令必须写入绝对路径 
love2  ALL=/usr/bin/passwd       
love2 ALL=/usr/bin/passwd [A-Za-z0-9]*,  !/usr/bin/passwd "",  !/usr/bin/passwd root   #赋予改密码权限,取消对 root 的密码修改
 
切换love2 身份    
sudo  /usr/sbin/useradd  love3  
posted @ 2019-12-01 11:54  叶落西南  阅读(170)  评论(0编辑  收藏  举报