博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下acl应用详解
阅读量:6588 次
发布时间:2019-06-24

本文共 2512 字,大约阅读时间需要 8 分钟。

简介 ACL是访问控制列表(Access Control Lists)的缩写,对于Unix系统 ACL是标准Unix文件属性(r,w)的附加扩展。ACL给予用户和管理员更好控制文件读写和权限赋予的能力,商业Unix和NTFS以及Freebsd都支持文件系统的 ACL,Linux从2.6内核开始支持对Ext2,Ext3和XFS,JFS等文件系统的ACL支持。 注意,Fedora Core从2开始支持ACL操作,虽然好像并不支持JFS和ReiserFS。
配置 打开文件系统的ACL支持,修改/etc/fstab的mount属性,例如针对这样的 /home文件系统,LABEL=/home /home ext3 rw,acl 1 2 该行第四列原文为defaults,现改为rw,acl以开启文件系统的ACL支持。 可以在线中心挂载文件系统,
# mount -v -o remount /home
当然umount掉文件系统,再mount也是可以的,只要确信没有用户和程序 在使用这个文件系统,可以通过mount命令来查看修改是否生效,
# mount -l
之后,输出中有这样的行就正确了, /dev/hda5 on /home type ext3 (rw,acl) [/home]
ACL操作命令 getfacl - 取得文件的ACL信息 setfacl - 设置文件的ACL信息 基本命令就是这么两条。 getfacl很简单,可以返回文件当前的ACL信息,例如在一个CVSROOT下的passwd 有这样的属性,
# getfacl passwd    # file: passwd    # owner: cvsadmin    # group: cvsadmin    user::rw-    group::r--    other::r--
可以用setfacl加上相关属性,例如加上allen用户可写到刚才我们看到的 passwd文件,
# setfacl -m u:allen:rw- passwd
这个命令可以这样解释:增加用户(u)用户名(allen)可读写权限(rw-)到 文件passwd。这样之后再执行getfacl,看看结果,
# getfacl passwd    # file: passwd    # owner: cvsadmin    # group: cvsadmin    user::rw-    user:allen:rw-    group::r--    mask::rw-    other::r--
可以看到多出了行user:allen:rw-,表示allen用户有rw-权限。 mask权限,就是用一个固定的权限设置遮住其他的权限设置,这样可以获得比较 好的保护,因为用户最终对文件的权限将是由设置的权限和mask运算出来的 有效权限,例如执行下面的设置,
# setfacl -m mask::r-- passwd    # getfacl passwd    # file: passwd    # owner: cvsadmin    # group: cvsadmin    user::rw-    user:allen:rw- #effective:r--    group::r--    mask::r--    other::r--
我们可以看到allen用户对于passwd文件的有效(effective)权限经计算 为r--。 如果setfacl命令不指定操作用户,那么就是对默认属主用户权限的操作,这时候 的setfacl命令功能上和传统的chmod相同。例如setfacl u::rwx,g::rwx,o::rwx filename 等价于chmod 777 filenmae。
更多的setfacl操作 -x 删除特定用户的权限设置,例如setfacl -x u:allen filename,删除filenmae上allen用户的权限设置。 删除所有的ACL设置, setfacl -b filename setfacl --remove-all filename 递归选项 -R 此外,ACL的属性设置也可以写在一个文件中,使用setfacl的-M参数从文件中取得设置信息,这个对成批设置和备份ACL设置恢复特别有效。 默认ACL设置,setfacl -d可以设置,只供目录以及目录继承使用。 cp和mv命令对于ACL的支持,mv命令保持ACL设置信息,cp命令在 使用-p,-a参数时保留ACL设置信息。但是如果从一个支持ACL的文件系统向 一个不支持ACL的文件系统移动或带ACL属性的拷贝,则会得到类似下面这样的错误提示, cp: preserving permissions for `filename': Operation not supported 设置了ACL的文件在ls -l时可以看到这样的情况, -rw-rw----+ 1 allen chen 0 Jun 2 09:52 filename 有个加号在第一个列的末尾。 可以这样备份ACL信息和恢复, getfacl -R dir/ > acl.bak.txt setfacl --restore acl.bak.txt 打包备份ACLs目录和文件 请使用star命令打包,参数-acl用于指定备份相关的ACL信息。 备份:star -Hexustar -acl -c f=Tree.star Tree 恢复:star -acl -x f=Tree.star ACL的应用,主要可以用在共享文件时需要细分用户权限的地方,如CVS仓库的权限控制应用等方面,ACL都有很好的用途。 ****** ACL 在权限继承问题: setfacl -m u:tset:rwx /test 意为增加test用户 对/test目录拥有完全权限 setfacl -m -d u:tset:rwx /test 意为增加test用户 对/test目录拥有完全权限并且默认继承。 转自:

转载地址:http://thqno.baihongyu.com/

你可能感兴趣的文章
【剑指Offer面试题】 九度OJ1368:二叉树中和为某一值的路径
查看>>
checkbox的name与JavaBean的交互时发现的一个现象
查看>>
基于Token的身份验证——JWT(转)
查看>>
Maven(五)之Maven配置阿里云镜像飞快下jar包
查看>>
Mysql加锁过程详解(5)-innodb 多版本并发控制原理详解
查看>>
script 里写 html 模版
查看>>
vue2.0 + vux (三)MySettings 页
查看>>
ASP.NET Core 使用 Alipay.AopSdk.Core 常见问题解答
查看>>
spring @Value 设置默认值
查看>>
带你从零学ReactNative开发跨平台App开发(十一)
查看>>
java 生成zip文件并导出
查看>>
atitit.userService 用户系统设计 v4 q316 .doc
查看>>
1224 - 搞定 iText 识别文字后翻译
查看>>
《iOS 8开发指南(第2版)》——第6章,第6.3节在Xcode中实现MVC
查看>>
机器人快速崛起:5年内消失510万工作岗位
查看>>
内存泄漏和内存溢出的区别
查看>>
pageinspect分析btree索引结构
查看>>
Jtable Auto Resize Column
查看>>
如何友好地展示findbugs分析报告
查看>>
postgresql 时间类型和相关函数
查看>>