CentOS 7 使用 ACL 设置文件权限

  • A+
所属分类:Linux
高性能企业级服务器首台5折

云服务器 ECS Linux  系统标准的 ugo/rwx 集合并不允许为不同的用户配置不同的权限,所以 ACL 便被引入了进来,为的是为文件和目录定义更加详细的访问权限,而不仅仅是这些特别指定的特定权限。

ACL 可以为每个用户,每个组或不在文件所属组中的用户配置相应的权限。ACL 可使用 setfacl 来设置(和移除),可相应地使用 -m 或 -x 选项。

 

例如,创建一个名为 aliyun 的组,并将用户 uread 和 uwrite 加入该组:

  1. 1
    <span class="com"><span class="hljs-meta">#</span><span class="bash">groupadd aliyun</span></span>
  2. 1
    <span class="com"><span class="hljs-selector-id">#useradd</span> -G aliyun -M uread -<span class="hljs-selector-tag">p</span> uread</span>
  3. 1
    <span class="com"><span class="hljs-selector-id">#useradd</span> -G aliyun -M uwrite -<span class="hljs-selector-tag">p</span> uwrite</span>

blob.png

在 /alidata 共有5个 txt 文件,只能 root 用户进行修改,其他用户只读。

blob.png

uread 用户尝试修改文件,提示没有权限

blob.png

 

使用 setfacl 修改权限,使 aliyun 组对 alidata 下 1.txt 文件可读写。

  1. 修改前先查看一下1.txt 文件权限
  1. 1
    <span class="com"><span class="hljs-meta">#</span><span class="bash">getfacl /alidata/1.txt</span></span>

blob.png

  1. 使用如下指令进行配置:
  1. 1
    <span class="com"><span class="hljs-selector-id">#setfacl</span> <span class="hljs-selector-tag">-m</span> <span class="hljs-selector-tag">g</span><span class="hljs-selector-pseudo">:aliyun</span><span class="hljs-selector-pseudo">:rw</span> /<span class="hljs-selector-tag">alidata</span>/<span class="hljs-selector-tag">1</span><span class="hljs-selector-class">.txt</span></span>
  1. 修改后权限 aliyun 组对1.txt 文件有写权限:

blob.png

  1. 测试添加的权限,uread 和 uwrite 都可以读写 1.txt

blob.png

blob.png

  1. 去掉 uread 的写权限
  1. 1
    <span class="com"><span class="hljs-selector-id">#setfacl</span> <span class="hljs-selector-tag">-m</span> <span class="hljs-selector-tag">u</span><span class="hljs-selector-pseudo">:uread</span><span class="hljs-selector-pseudo">:r</span> /<span class="hljs-selector-tag">alidata</span>/<span class="hljs-selector-tag">1</span><span class="hljs-selector-class">.txt</span></span>

blob.png

  1. 测试 uread 已经不能修改文件了

blob.png

  1. 去除权限 1.txt  的权限
  1. 1
    <span class="pln">setfacl </span><span class="pun">-</span><span class="pln">x <span class="hljs-string">u</span></span><span class="pun"><span class="hljs-string">:</span></span><span class="pln">uread </span><span class="pun"><span class="hljs-regexp">/</span></span><span class="pln"><span class="hljs-regexp">alidata</span></span><span class="pun"><span class="hljs-regexp">/</span></span><span class="lit"><span class="hljs-number">1.</span>txt</span>

blob.png

  1. 1
    <span class="pln">setfacl </span><span class="pun">-</span><span class="pln">x <span class="hljs-string">g</span></span><span class="pun"><span class="hljs-string">:</span></span><span class="pln">aliyun </span><span class="pun"><span class="hljs-regexp">/</span></span><span class="pln"><span class="hljs-regexp">alidata</span></span><span class="pun"><span class="hljs-regexp">/</span></span><span class="lit"><span class="hljs-number">1.</span>txt</span>

blob.png

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: