问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在Linux下设置访问控制列表来控制用户的权限

发布网友 发布时间:2022-04-21 04:10

我来回答

2个回答

热心网友 时间:2023-07-21 14:23

ACL支持多种Linux文件系统,包括ext2, ext3, ext4, XFS, Btfrs, 等。如果你不确定你的文件系统是否支持ACL,请参考文档。
  在文件系统使ACL生效
  首先,我们需要安装工具来管理ACL。
  Ubuntu/Debian 中:
  $ sudo apt-get install acl
  CentOS/Fedora/RHEL 中:
  # yum -y install acl
  Archlinux 中:
  # pacman -S acl
  出于演示目的,我将使用ubuntu server版本,其他版本类似。
  安装ACL完成后,需要激活我们磁盘分区的ACL功能,这样我们才能使用它。
  首先,我们检查ACL功能是否已经开启。
  $ mount
  你可以注意到,我的root分区中ACL属性已经开启。万一你没有开启,你需要编辑/etc/fstab文件,在你需要开启ACL的分区的选项前增加acl标记。
  现在我们需要重新挂载分区(我喜欢完全重启,因为我不想丢失数据),如果你对其它分区开启ACL,你必须也重新挂载它。
  $ sudo mount / -o remount
  干的不错!现在我们已经在我们的系统中开启ACL,让我们开始和它一起工作。
  ACL 范例
  基础ACL通过两条命令管理:setfacl用于增加或者修改ACL,getfacl用于显示分配完的ACL。让我们来做一些测试。
  我创建一个目录/shared给一个假设的用户,名叫freeuser
  $ ls -lh /
  我想要分享这个目录给其他两个用户test和test2,一个拥有完整权限,另一个只有读权限。
  首先,为用户test设置ACL:
  $ sudo setfacl -m u:test:rwx /shared
  现在用户test可以随意创建文件夹,文件和访问在/shared目录下的任何地方。
  现在我们增加只读权限给用户test2:
  $ sudo setfacl -m u:test2:rx /shared
  注意test2读取目录需要执行(x)权限
  让我来解释下setfacl命令格式:
  -m 表示修改ACL。你可以增加新的,或修改存在的ACLu: 表示用户。你可以使用 g 来设置组权限test 用户名:rwx 需要设置的权限。
  现在让我向你展示如何读取ACL:
  $ ls -lh /shared
  你可以注意到,正常权限后多一个+标记。这表示ACL已经设置成功。要具体看一下ACL,我们需要运行:
  $ sudo getfacl /shared
  最后,如果你需要移除ACL:
  $ sudo setfacl -x u:test /shared
  如果你想要立即擦除所有ACL条目:
  $ sudo setfacl -b /shared
  最后,在设置了ACL文件或目录工作时,cp和mv命令会改变这些设置。在cp的情况下,需要添加“p”参数来复制ACL设置。如果这不可行,它将会展示一个警告。mv默认移动ACL设置,如果这也不可行,它也会向您展示一个警告。

热心网友 时间:2023-07-21 14:24

访问控制列表简称ACL(是Access Control List的缩写),可以针对用户来设置权限,设置ACL的命令是setfacl,下面是setfacl的指令用法介绍及最简单的u:用户名:权限(针对某个用户)设定。

[root@myhost〜]#setfacl [-bkRd] [{-m | -x} ACL参数] 文件或目录名
setfacl的选项与参数简介:
-m:设定后续的ACL参数给目标使用,不可与-x合用;
-x:删除后续的ACL参数,不可与-m合用;
-b:移除所有的ACL设定参数;
-k:删除默认的ACL参数
-R:递回设定ACL,亦即包括子目录都会被设定起来;
-d:设定『默认ACL参数』只对目录有效,在该目录新建的文件或文件夹会引用此预设值

上面谈到的是ACL的选项功能,那么如何设定ACL的权限呢。ACL权限的设定方法有很多,我们这里谈谈针对特定用户名的设定方式:
设定范例:u:用户名:rwx,例如针对myuser1的权限设定:
root@myhost〜]#touch acl_test1
[root@myhost〜]#ls -l acl_test1
-rw-r--r--. 1 root root 0 Jul 21 17:33 acl_test1
[root@myhost〜]#setfacl -m u:myuser1:rx acl_test1
[root@myhost〜]#ls -l acl_test1
-rw-r-xr--+ 1 root root 0 Jul 21 17:33 acl_test1
权限部分多了个+加号,而且与原本的权限644不同。然后输入命令:
getfacl acl_test1
就可以看到用户myuser1的权限是r-x。

[root@myhost〜]#setfacl -m u::rwx acl_test1
[root@myhost〜]#ls -l acl_test1
-rwxr-xr--+ 1 root root 0 Jul 21 17:33 acl_test1
设定值中的u后面没有用户名列表,代表设定该文件所有者,所以上面设定的是root的权限,root权限成rwx了

上述例子是最简单的ACL设定,利用u:用户名:权限的方式来设定,设定前加上-m这个选项。如果一个文件或目录设定了ACL参数后,他的权限部分就会多出一个+号了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
泌尿系结核肾结核有哪些特点 肾结核治好影响寿命吗 邢台七路公交车2020年一月二十九号通车吗? 笔记本的USB有线网卡上不了网,试了公司的台式机(是路由器的),店家的... 喝多给特别喜欢的男生打电话骂他,他也不生气,是不在意吗 为什么我的QQ绑定不起手机为什么说我本次操作存在风? 内账应收应付怎么对账 应收应付应该如何对账 深圳弗林棕旅行社有限公司怎么样? 深圳市鹏运国际旅行社有限公司怎么样? 权限由哪些字段组成 一加的应用权限管理,怎么样关闭读取应用列表的权限 逻辑打印机的安全权限列表中,有哪几种权限 内部控制都有哪些一般方法? 内控权限指引表,下划线是啥含义 教师节是阳历9月l0号吗? mysql有关权限的表都有哪几个 如何操作权限控制,有什么方法? 九链对接含义 B端产品权限设计(一)基本知识 教师节为什么是9月10日? 财政部内控指引18项都有什么 原来教师节在九月九日? 企业内控标准的企业内控标准的审批权限 我国的教师节是9月10日,其他国家的教师节是哪天? essentials所有权限列表 权限管理——后台系统的权限设置,吐血整理,原型图食用更直观 教师节是几月几日啊? excel数字显示e+17怎么恢复。? EXCEL表身份证输错了怎么更改啊? 三星手机禁止软件读取应用列表权限在哪里 读取应用列表权限有什么用 什么是操作员的权限,出纳权限包括哪些 什么是acl。什么是控制列表 无查看文件列表权限 怎么解决 (急 急 急!!!) PHP面试都会问什么? PHP面试的内容一般有哪些?一般会问那些问题?有什么技巧吗? PHP面试需要注意什么 php技术面试一般都是什么问题 如果你是php面试官你会提哪些面试的问题! 面试php程序员的时候会被问哪些问题? PHP面试中你要问面试官的问题有哪些 PHP面试官们你们面试实习生会提什么问题 PHP面试一般会问些什么问题 php面试项目经验怎么说 如何面试PHP程序员 404 Not Found PHP面试问题,完全迷糊 php面试题解答 win10怎么添加快捷方式到桌面