• Linux-ACL权限


    ACL权限简介

    ACL:access control list
    允许给任何用户或者用户组设置任何文件或者目录的访问权限

    查看Linux是否开启ACL dumpe2fs

    Linux一般都开启了ACL权限,可以使用下面的命令查看分区的ACL权限是否打开
    首先可以使用df -h或者lsblk来查看Linux系统的分区情况

    [root@centos01 ljs]# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   20G  0 disk 
    ├─sda1   8:1    0    1G  0 part /boot
    ├─sda2   8:2    0    2G  0 part [SWAP]
    └─sda3   8:3    0   17G  0 part /
    sdb      8:16   0    1G  0 disk 
    └─sdb1   8:17   0 1023M  0 part /home/newdisk
    sr0     11:0    1  4.3G  0 rom  /run/media/ljs/CentOS 7 x86_64
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    [root@centos01 ljs]# df -h
    文件系统        容量  已用  可用 已用% 挂载点
    /dev/sda3        17G   12G  4.3G   74% /
    devtmpfs        976M     0  976M    0% /dev
    tmpfs           991M     0  991M    0% /dev/shm
    tmpfs           991M   11M  980M    2% /run
    tmpfs           991M     0  991M    0% /sys/fs/cgroup
    /dev/sdb1       991M  2.6M  922M    1% /home/newdisk
    /dev/sda1       976M  134M  776M   15% /boot
    tmpfs           199M  4.0K  199M    1% /run/user/42
    tmpfs           199M   28K  199M    1% /run/user/1000
    /dev/sr0        4.3G  4.3G     0  100% /run/media/ljs/CentOS 7 x86_64
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    比如,我要查看分区/dev/sda3的情况
    dumpe2fs -h /dev/sda3
    在这里插入图片描述

    设定ACL权限

    setfacl 选项 文件名
    -m:设定ACL权限
    -x:删除指定的ACL权限
    -b:删除所有的ACL权限
    -d:设定默认的ACL权限
    -k:删除默认的ACL权限
    -R:递归设定ACL权限

    给用户设定acl权限
    setfacl -m u:st:rx /project1
    给用户组设定ACL权限
    setfacl -m g:tgroup:rwx /project1

    练习

    创建两个用户zhangsan,lisi,并将它们加入到tgroup中,创建一个文件夹project,修改这个文件夹的所属组为tgroup
    这个文件夹的权限设置为770,再创建一个用户st,st属于其他,但是st用户对project有rx权限,其他人的权限不能改变

    #创建两个用户
    useradd zhangsan
    useradd lisi
    #创建组tgroup
    groupadd tgroup
    #将zhangsan和lisi添加到tgroup中
    usermod -g tgroup zhangsan
    usermod -g tgroup lisi
    #创建一个project1文件夹
    mkdir project1
    #修改project1的权限
    chmod 770 project1/
    #将文件夹的所属组修改为tgroup
    chgrp tgroup project1/
    #创建st用户并设置密码
    useradd st
    passwd st
    #使用st这个用户远程登录,访问project1
    [st@centos01 root]$ cd project1
    -bash: cd: project1: 权限不够
    #使用acl给st用户赋予rx的权限
    setfacl -m u:st:rx project1/
    #使用st用户再次访问project1
    [st@centos01 root]$ cd project1
    [st@centos01 project1]$ ls -la
    总用量 12
    drwxrwx---+  2 root tgroup 4096 1128 22:19 .
    dr-xr-x--x. 18 root root   4096 1128 22:19 ..
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    查看ACL权限

    getfacl 文件名
    先使用ls -la查看设定了ACL权限的文件,多了一个+

    drwxrwx---+  2 root tgroup  4096 1128 22:19 project1
    
    
    • 1
    • 2
    [root@centos01 ~]# getfacl project1/
    # file: project1/
    # owner: root
    # group: tgroup
    user::rwx
    user:st:r-x
    group::rwx
    mask::rwx
    other::---
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    如果运行某个service时,提示对某个文件没有权限,可以使用acl给特定的用户设置一个权限

  • 相关阅读:
    HTB Runner
    Javaweb之javascript的详细解析
    NSS [NCTF 2018]滴!晨跑打卡
    FFmpeg--音频解码流程:aac解码pcm
    巨好看的登录注册界面源码
    uni-app小程序开发踩过的坑之ref无法获取当前元素的宽高数据
    公网访问的Linux CentOS本地Web站点搭建指南
    微信小程序自定义图片上传组件
    混淆技术研究笔记(六)如何基于yGuard实现?
    前端导出数据到Excel(Excel.js导出数据)
  • 原文地址:https://blog.csdn.net/ljsykf/article/details/128088254