权限管理一

一、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  

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...