码迷,mamicode.com
首页 > 其他好文 > 详细

011 文件管理高级(ACL、SU、SUDO)

时间:2021-03-17 14:46:44      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:file类   abc   全局   shell   which   inux   block   冲突   情况   

ACL

ACL是为了解决某种特殊环境下的,用户权限需求。

  • setfacl : 设置acl权限
  • getfacl :查看ACL权限

acl权限归属

  • u : 指定用户
  • g : 指定组
  • o : 修改其他用户权限
  • m : 指定mask权限

注:默认情况下,ACL权限跟普通权限保持一致。

基本用法

 修改属主的权限
 setfacl -m u::权限 a.txt
 
 修改属组的权限
 setfacl -m g::权限 a.txt
 
 修改其他?的权限
 setfacl -m o::权限 a.txt
 
 修改具体某?个?户的权限
 setfacl -m u:?户名:权限 a.txt
 
 修改具体某?个组的权限
 setfacl -m g:组名:权限 a.txt # 组必须存在
 
 # 也可以给?录设置,都?样

查看与删除

# 查看
getfacl /opt/a.txt
# 删除
setfacl -x g:group1 /opt/a.txt # 删除组hr的权限
setfacl -b /opt/a.txt #删除所有acl权限

创建案例

  • 1、创建文件

    chmod o+x /root
    chmod o+x /root/xiaochen
    cd xiaochen
    
    [root@localhost xiaochen]# touch abc.txt
    [root@localhost xiaochen]# chmod 000 abc.txt 
    [root@localhost xiaochen]# ll
    total 0
    ---------- 1 root root 0 Mar 16 11:39 abc.txt
    
  • 编写文件

    [root@localhost xiaochen]# echo 111 > abc.txt 
    [root@localhost xiaochen]# cat abc.txt 
    111
    
  • 设置ACL权限

    [root@localhost xiaochen]# useradd xiaozhang
    [root@localhost xiaochen]# setfacl -m u:xiaozhang:r abc.txt 
    [root@localhost xiaochen]# getfacl abc.txt 
    # file: abc.txt
    # owner: root
    # group: root
    user::---
    user:xiaozhang:r--
    group::---
    mask::r--
    other::---
    
    # 注:
    setfacl -m u:用户名称:权限(rwx) 文件名称
    
  • 查看文件

    [root@localhost ~]# su - xiaozhang
    [xiaozhang@localhost ~]$ cat /root/xiaochen/abc.txt
    111
    

mask

[root@jichu ~]# getfacl a.txt
# file: a.txt
# owner: root
# group: root
user::---
user:test:rw-			#effective:r--
group::---
mask::r--
other::---

这里查看a.txt的时候,旁边多了一个#effective:r--,这里代表着,即使用户权限再高,最高的权限只有r,因为由mask控制着。

除了所有者和other不受影响,其他都会受到mask的影响,mask决定了他们的最?权限)

ps:我们?般不更改 mask 权限,只要赋予 mask 最?权限(也就是 rwx),则给?户或群组设定的 ACL 权限本身就是有效的。

default:继承(默认)

默认情况下,ACL是不会继承上层目录的权限的,只有目录设置可以继承子集文件才可以继承ACL权限

[root@localhost linux12]# setfacl -m d:u:xiaochen:w ../linux12
[root@localhost linux12]# touch bcd.txt
[root@localhost linux12]# ls -l
total 0
-rw-r--r--  1 root root 0 Mar 16 15:40 abc.txt
-rw-rw-r--+ 1 root root 0 Mar 16 15:43 bcd.txt
[root@localhost linux12]# getfacl bcd.txt 
# file: bcd.txt
# owner: root
# group: root
user::rw-
user:xiaochen:-w-
group::r-x			#effective:r--
mask::rw-
other::r--

SUDO

用于普通用提升权限的。

  • 相关的文件:/etc/sudoers

  • 检查/etc/sudoers是否修改正确:visudo -c

  • sudoers文件格式

    tom       ALL=           (ALL)          ALL
    用户名称   所有机器可登陆    所有IP或主机名   所有的指令
    
  • 指令编写格式

    # 必须写全路径:which查看命令全路径
    
    # 只支持vim命令提权
    xianchen ALL=(ALL)  /usr/bin/vim
    
    # 支持所有的命令提权
    tom ALL=(ALL)  ALL
    
    # 不支持某个命令提权
    tom ALL=(ALL) ALL, !/usr/bin/vim
    
    # 不支持某个命令的部分功能
    xiaochen ALL=(ALL)   ALL, !/usr/bin/vim /root/123.txt
    

技术图片

技术图片

su

  • su - xxx 和 su xxx之间区别

    1、su - xxx :相当于切换一个窗口,su xxx 仅仅切换了用户
    
    2、su - xxx : 切换用户执行的系统文件要多于 su xxx
    
    3、su - xxx 是登录
       su  xxx  切换用户
    
  • Linux中的shell可以分为两类

登陆shell,需要输??户名和密码才能进?Shell,?常接触的最多的?种
?登陆shell,不需要输??户和密码就能进?Shell,?如运?bash会开启?个新的会话窗?

bash shell配置文件介绍

全局配置?件:
 /etc/profile
 /etc/profile.d/*.sh
 /etc/bashrc
个?配置?件:
 ~/.bash_profile
 ~/.bashrc
profile类?件, 设定环境变量, 登陆前运?的脚本和命令。
bashrc类?件, 设定本地变量, 定义命令别名
PS: 如果全局配置和个?配置产?冲突,以个?配置为准。

配置文件的执行顺序

如果执?的是登录式shell,那么配置?件执?顺序是: 
/etc/profile -> /etc/profile.d/*.sh -> ~/.bash_profile -> ~/.bashrc -> /etc/bashrc
如果执?的是?登录式shell,那么配置?件执?顺序是:
~/.bashrc -> /etc/bashrc -> /etc/profile.d/*.sh
PS: 验证使?echo在每?添加?个输出即可,注意,要把输出放在?件的第??。如果说要写登录执行脚本,可以配置在/.bashrc当中。

011 文件管理高级(ACL、SU、SUDO)

标签:file类   abc   全局   shell   which   inux   block   冲突   情况   

原文地址:https://www.cnblogs.com/zhaokunhao/p/14545227.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!