CentOS下ACL权限控制详解

   ACL权限控制

  设置ACL权限:setfacl

  查看ACL权限:getfacl

  ACL权限控制主要目的是提供传统的owner,group,other的read,wirte,execute权限之外的具体权限设置,可以针对单一用户或组来设置特定的权限

  比如:某一目录权限为

  drwx------ 2 root root 4096 03-10 13:51./acldir

  用户user对此目录无任何权限因此无法进入此目录,ACL可单独为用户user设置这个目录的权限,使其可以操作这个目录

  ACL启动

  要使用ACL必须要有文件系统支持才行,目前绝大多数的文件系统都会支持,EXT3文件系统默认启动ACL的

  查看文件系统是否支持ACL

  [root@localhost tmp]#

  dumpe2fs -h /dev/sda2 dumpe2fs 1.39 (29-May-2006)

  ……

  sparse_super large_file

  Default mount options: user_xattr acl

  加载ACL功能

  如果UNIX LIKE支持ACL但是文件系统并不是默认加载此功能,可自己进行添加

  [root@localhost tmp]# mount -o remount,acl /

  [root@localhost tmp]# mount

  /dev/sda2 on / type ext3 (rw,acl)

  同样也可以修改磁盘挂在配置文件设置默认开机加载

  [root@localhost tmp]# vi /etc/fstab

  LABEL=/ / ext3 defaults,acl 1 1

  查看ACL权限

  语法:getfacl filename

  设置ACL权限

  语法:setfacl [-bkRd] [-m|-x acl 参数] 目标文件名

  选项与参数:

  -m:设置后续的acl参数,不可与-x一起使用

  -x: 删除后续的acl参数,不可与-m一起使用

  -b:删除所有的acl参数

  -k:删除默认的acl参数

  -R:递归设置acl参数

  -d:设置默认acl参数,只对目录有效

  针对特殊用户

  设置格式:u:用户账号列表:权限

  权限:rwx的组合形式

  如用户列表为空,代表设置当前文件所有者权限

  举例:

  [root@localhost tmp]# mkdir -m 700 ./acldir; ll -d ./acldir

  drwx------ 2 root root 4096 03-10 13:51 ./acldir

  [root@localhost tmp]# su tkf

  [tkf@localhost tmp]$ cd ./acldir/

  bash: cd: ./acldir/: 权限不够 =>用户无X权限

  [tkf@localhost tmp]$ exit

  exit

  [root@localhost tmp]# setfacl -m u:tkf:x ./acldir/

  =>针对用户tkf设置acldir目录的权限为x

  [root@localhost tmp]# ll -d ./acldir/

  drwx--x---+ 2 root root 4096 03-10 13:51 ./acldir/

  =>通过ACL添加权限在权限末尾会增加多个一个“+”同时文件原本权限也发生变化。

  =>可通过getfacl查看原始目录权限

  [root@localhost tmp]# getfacl ./acldir/

  # file: acldir

  # owner: root

  # group: root

  user::rwx

  user:tkf:--x =>记录tkf用户针对此目录有acl权限

  group::---

  mask::--x

  other::---

  =>这里需要特殊说明,只是tkf这个用户具有X权限,其他用户还是无权限的

  [root@localhost tmp]# su tkf

  [tkf@localhost tmp]$ cd ./acldir/

  [tkf@localhost acldir]$

  =>用户tkf可以具有x权限可以进入目录

  针对特定用户组

  设置格式:g:用户组列表:权限

  权限:rwx的组合形式

  如用户组列表为空,代表设置当前文件所属用户组权限

  举例:

  [root@localhost tmp]# setfa

  setfacl setfattr

  [root@localhost tmp]# setfacl -m g:users:rx ./acldir/

  [root@localhost tmp]# getfacl ./acldir/

  # file: acldir

  # owner: root

  # group: root

  user::rwx

  user:tkf:--x

  group::--- => 其他用户组(非acl设置)的权限

  group:users:r-x => 记录users用户组针对此目录有acl权限

  mask::r-x

  other::---

  针对有效权限设置

  有效权限(mask)就是acl权限设置的极限值,也就是你所设置的acl权限一定是mask的一个子集,如果超出mask范围会将超出的权限去掉

  设置格式:m:权限

  权限:rwx的组合形式

  举例:

  [root@localhost tmp]# setfacl -m m:x ./acldir/

  [root@localhost tmp]# getfacl ./acldir/

  # file: acldir

  # owner: root

  # group: root

  user::rwx

  user:tkf:--x

  group::r-x #effective:--x

  group:users:r-x #effective:--x

  mask::--x

  other::---

  针对默认权限设置

  我们前面都是针对一个目录为一个用户(组)设置特定权限,但是如果这个目录下在新创建的文件是不具有这些针对这个用户的特定权限的。为了解决这个问题,就需要设置默认acl权限,使这个目录下新创建的文件有和目录相同的ACL特定权限

  设置格式:d:[u|g]:用户(组)列表:权限

  举例

  [root@localhost tmp]# mkdir -m 711 ./defdir

  [root@localhost tmp]# setfacl -m u:tkf:rxw ./defdir

  [root@localhost tmp]# ll -d ./defdir/

  drwxrwx--x+ 2 root root 4096 03-10 15:23 ./defdir/

  =>目录权限具有acl特定权限(后面+)

  [root@localhost tmp]# touch ./defdir/a.file;ll ./defdir/

  -rw-r--r-- 1 root root 0 03-10 15:25 a.file

  =>新创建的文件不具有acl特定权限(后面无+)

  [root@localhost tmp]# setfacl -m d:u:tkf:rxw ./defdir

  =>设置默认权限

  [root@localhost tmp]

  # getfacl ./defdir/

  # file: defdir

  # owner: root

  # group: root

  user::rwx

  user:tkf:rwx

  group::--x

  mask::rwx

  other::--x

  default:user::rwx

  default:user:tkf:rwx

  default:group::--x

  default:mask::rwx

  default:other::--x

  [root@localhost tmp]# touch ./defdir/b.file;ll ./defdir/

  -rw-r--r-- 1 root root 0 03-10 15:25 a.file

  -rw-rw----+ 1 root root 0 03-10 15:26 b.file

  =>新创建文件默认带有acl特定权限

  [root@localhost tmp]

  # getfacl ./defdir/b.file

  # file: defdir/b.file

  # owner: root

  # group: root

  user::rw- user:tkf:rwx #effective:rw-

  group::--x #effective:---

  mask::rw-

  other::---

  =>这快我有个疑问,为什么mask值是rw,我猜测和文件最大权限有关,

  =>对于文件来时默认最大权限是666即UMASK为0000.那个对于可执行文件来说

  =>没有X,难道还需要使用chmod设置? 疑问!!

时间: 2016-12-16

CentOS下ACL权限控制详解的相关文章

CentOS下badblocks指令的详解

  CentOS下badblocks指令的详解            一.命令参数 badblocks使用格式为: 引用 badblocks [ -svwnf ] [ -b block-size ] [ -c blocks_at_once ] [ -i input_file ] [ -o output_file ] [ -p num_passes ] [ -t test_pattern ] device [ last-block ] [ start-block ] 参数含义是: 引用 -b bl

Redis 对比 Memcached 并在 CentOS 下进行安装配置详解_Redis

Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,本篇文章主要介绍了Redis 对比 Memcached 并在 CentOS 下进行安装配置详解,有兴趣的可以了解一下. 了解一下 Redis Redis 是一个开源.支持网络.基于内存.键值对的 Key-Value 数据库,使用 ANSI C 编写,并提供多种语言的 API ,它几乎没有上手难度,只需要几分钟我们就能完成安装工作,并让它开始与应用程序顺畅协作.换句话来说,只需投入一小部分时间与精力,大家就能获得立竿

Windows下的权限设置详解

随着动网论坛的广泛应用和动网上传漏洞的被发现以及SQL注入式攻击越来越多的被使用,WEBSHELL让防火墙形同虚设,一台即使打了所有微软补丁.只让80端口对外开放的WEB服务器也逃不过被黑的命运.难道我们真的无能为力了吗?其实,只要你弄明白了NTFS系统下的权限设置问题,我们可以对crackers们说:NO! 要打造一台安全的WEB服务器,那么这台服务器就一定要使用NTFS和Windows NT/2000/2003.众所周知,Windows是一个支持多用户.多任务的操作系统,这是权限设置的基础,

红客必学:Windows下的权限设置详解_网络冲浪

随着动网论坛的广泛应用和动网上传漏洞的被发现以及SQL注入式攻击越来越多的被使用,WEBSHELL让防火墙形同虚设,一台即使打了所有微软补丁.只让80端口对外开放的WEB服务器也逃不过被黑的命运.难道我们真的无能为力了吗?其实,只要你弄明白了NTFS系统下的权限设置问题,我们可以对crackers们说:NO! 要打造一台安全的WEB服务器,那么这台服务器就一定要使用NTFS和Windows NT/2000/2003.众所周知,Windows是一个支持多用户.多任务的操作系统,这是权限设置的基础,

centos下mysql主从复制设置详解_Mysql

安装环境:centos 5.4 mysql版本:mysql 5.1.xx 采用rpm直接安装 所需软件: xtrabackup 1.2.22 采用rpm直接安装 1. Master:/etc/my.cnf  复制代码 代码如下: [mysqld] server-id = 1log-bin innodb_flush_log_at_trx_commit=1 sync_binlog=1 datadir=/var/lib/mysql character-set-server=utf8 init_conn

CentOS下SSH配置方法详解

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议. 传统的网络服务程序,如FTP.POP和Telnet其本质上都是不安全的:因为它们在网络上用明文传送数据.用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击.就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器. 而 SSH 是目前

Linux下DNS服务器搭建详解

Linux下DNS服务器搭建详解 简介: DNS服务器的作用就是就好比生活中的电话簿.114查号台一样,为各种网络程序找到对应目标主机的IP地址或对应的主机域名. DNS系统的作用: 正向解析:根据主机名称(域名)查找对应的IP地址(实际应用中最多的) 反向解析:根据IP地址查找对应的主机域名(不常用,一般用于搭建邮件服务器时.) 根据服务器与所提供域名解析记录的关系,将DNS服务器分为不同的角色: 缓存域名服务器 也称为 唯高速缓存服务器 通过向其他域名服务器查询获得域名->IP地址记录 将域

linux 下的yum命令详解_Linux

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载.安装.yum提供了查找.安装.删除某一个.一组甚至全部软件包的命令,而且命令简洁而又好记. yum的命令形式一般是如下:yum [options] [command] [package ...] 其中的[opt

Flash声音控制详解

控制|详解 声音是多媒体的重要组成元素,恰当.灵活地运用声音往往是多媒体作品的成败关键.Flash作为人们喜爱的多媒体工具,其声音的使用方式也丰富多样,本文探讨了在Flash中使用声音的几种情况,希望能对大家有所帮助.       一.在时间轴中使用声音       这是Flash中声音最常使用的方式,任何一本Flash教材都会讲到这个问题,所以只作简单说明.       在设置一个关键帧后,只要你导入了声音文件,在帧属性面板都能进行该帧的声音设置.声音的同步属性(Sync)主要有以下几种: