发布时间:2014-09-05 16:59:31作者:知识屋
Linux权限非常的一重要,正常情况下一个文件或目录有三种角色,分别为:目录或文件拥有者(User)、所属群组(Group)、其他用户(Other),每个角色对应:读、写、可执行(rwx)。这也是我们最常见的权限,#ls -l 所看到第一列内容。第一位是文件类型,如 d 是目录、-是普通文件、l 是链接文件、c 是字符文件、b 是块文件等。 剩下9位即是文件对应三种角色的权限。如下图:
还会有其它一些特殊权限,如SUID、SGID、 Sticky bit,还有一些需要通过命令lsattr来查看和chattr来设置的隐藏权限。
ACL(Access Control List)即访问控制列表。主要是针对单一用户,单一文件或目录进行rwx权限的细部设定。可以针对用户(User)、群组(Group)、默认属性掩码(umask)进行设置。
#mount -o remount /dev/sda7
-a , --access:显示文件或目录的访问控制列表。
-d , --default:显示文件或目录的默认(缺省)的访问控制列表。
-c , --omit-header:不显示默认的访问控制列表。
-R , --recursive:操作递归到子目录。
-t , --tabular:使用列表输格式出ACL设置信息。
-n , --numeric:显示ACL信息中的用户和组的UID和GID。
-p , --absolute-names:
-v , --version:显示命令的版信息
-h , --help:显示命令帮助信息。
-m, --modify=acl:修改文件或目录的扩展ACL设置信息。
-M, --modify-file=file:从一个文件读入ACL设置信息并以此为模版修改当前文件或目录的扩展ACL设置信息。
-x, --remove=acl:从文件或目录删除一个扩展的ACL设置信息。
-X, --remove-file=file:从一个文件读入ACL设置信息并以此为模版删除当前文件或目录的ACL设置信息。
-b, --remove-all:删除所有的扩展的ACL设置信息。
-k, --remove-default:删除缺省的acl设置信息。
-n, --no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。
-d, --default:设置默认的ACL设置信息(只对目录有效)。
-R, --recursive:操作递归到所有子目录和文件。
-L, --logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。
-P, --physical:跳过所有符号链接,包括符号链接文件。
-v, --version:显示程序的版信息。
-h, --help:显示帮助信息。
ACL设置信息
setfacl命令可以识别以下的设置信息格式。
setfacl [d[efault]:] [u[ser]:]uid [:perms]:指定用户的权限,文件所有者的权限(如果uid没有指定)。
setfacl [d[efault]:] g[roup]:gid [:perms]:指定群组的权限,文件所有群组的权限(如果gid未指定)
setfacl [d[efault]:] m[ask][:] [:perms]:有效权限掩码
setfacl [d[efault]:] o[ther] [:perms]:其他的权限
3.实例
由于我的sda7这个partition经过上面的动作,已经启用了ACL功能,挂载在 /data目录下。下面所有的动作都是在这个目录下完成。
(1)默认的ACL设置信息
用root在 /data 目录下创建一个acl_test目录。
使设置信息能正常执行,需要满足以下条件:
★ 三个基本设置不能被删除。
★ 任何一条包含指定的用户名或群组名的设置信息必须包含有效的权限组合(即rwx的权限组合)。
★ 缺省设置信息必须存在。
注意:多了一个mask:rwx。这是一个权限掩码。用来控制你所设置的扩展ACL权限。你所设置的权限必须存于mask规定的范围内才会生效。也就是所谓的“有效权限(effective permission)”。你可以用getfacl -e命令查看,如下图:
注意:如果setfacl命令不指定操作用户,那么就是对默认属主用户权限的操作(例如acl_test/目录,owner:root,group:root),这时候的setfacl命令功能上和传统的chmod相同。例如setfacl u::rwx,g::rwx,o::rwx acl_test/ 等价于chmod 777 acl_test/ 。就是把缺省设置信息全部设置为rwx的权限了。
setfacl -d --set [ug]:列表:[rwx] 目录 (注意:-d参数必须放在最前面。)
setfacl -m d:[ug]:列表:[rwx] 目录
setfacl -x [ug]:用户或级列表 文件或目录:删除特定用户或组在相关文件或目录上的ACL设置。
注意:cp和mv命令对于ACL的支持,mv命令保持ACL设置信息,cp命令在使用-p,-a参数时保留ACL设置信息。但是如果从一个支持ACL的文件系统向一个不支持ACL的文件系统移动或带ACL属性的拷贝,则会得到类似下面这样的错误提示,cp: preserving permissions for `filename’: Operation not supported
作者“学习笔记”
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能