RH134-6 使用访问控制列表限制文件访问

第六章、使用访问控制列表限制文件访问

6.1、 ACL访问控制列表概述

实现更多的权限控制,可以同时针对多个不同的用户、组进行权限设定

ext2,ext3,ext4文件系统挂载的时候需要使用acl选项,xfs默认就支持.

设定acl只能是root

命令: getfacl , setfacl

# ll /tmp/passwd

-rw-r--r--. 1 root root 2005 Jul 19 11:38/tmp/passwd

# getfacl /tmp/passwd   在没有对文件设定acl的时候,看到结果和ls -l 看到的传统权限设定是一样

getfacl: Removing leading ‘/‘ from absolutepath names

# file: tmp/passwd

# owner: root

# group: root

user::rw- 文件owner权限

group::r-- 文件拥有组权限

other::r-- 其他人权限

文件设定acl后:

# ll /tmp/passwd

-rwxrwx---+ 1 root root 2058 May 11 21:08/tmp/passwd

# getfacl /tmp/passwd

getfacl: Removing leading ‘/‘ from absolutepath names

# file: tmp/passwd

# owner: root

# group: root

user::rwx

user:mary:rw-                    #effective:r--

user:jack:r--

group::rwx                          #effective:r-x

group:tom:r--

mask::r-x

other::---

目录设定默认acl后:

# getfacl /tmp/test

getfacl: Removing leading ‘/‘ from absolutepath names

# file: tmp/test

# owner: root

# group: root

user::rwx

group::r-x

other::r-x

default:user::rwx

default:user:tom:r-x

default:group::r-x

default:mask::r-x

default:other::r-x

6.2、制定ACL访问控制列表

例子1:

要求在desktop虚拟机里把文件的属性修改tom:admin , 权限默认为644

要求: tom对该文件有所有的权限,mary可以读写该文件,admin组可以读写执行该文件,jack只读该文件,其他人一律不能访问该文件

tom组仅仅对该文件只读

实验前,建立几个普通用户

# useradd tom

# useradd bean

# useradd mary

# useradd jack

# groupadd admin

# gpasswd -a mary admin

# gpasswd -a bean admin

# id tom

uid=1001(tom) gid=1001(tom)groups=1001(tom)

# id mary

uid=1002(mary) gid=1002(mary)groups=1002(mary),1004(admin)

# id bean

uid=1003(bean) gid=1003(bean)groups=1003(bean),1004(admin)

# id jack

uid=1004(jack) gid=1005(jack)groups=1005(jack)

# chown tom:admin /tmp/passwd

# chmod 644 /tmp/passwd

# setfacl -muser::rwx,user:mary:rw,group::rwx,user:jack:r,group:tom:r,other::---  /tmp/passwd

# getfacl /tmp/passwd

getfacl: Removing leading ‘/‘ from absolutepath names

# file: tmp/passwd

# owner: tom

# group: admin

user::rwx

user:mary:rw-

user:jack:r--

group::rwx

group:tom:r--

mask::rwx <---除了 user:: 和 other:: ,会于中间的所有控制列表进行 交集运算, 算出对应规则有效权限

other::---

acl的控制规则是从上往下匹配的

tom由于他是文件的拥有者,所以直接安装user:: 指定的权限去操作 --》 rwx

mary不是文件的拥有着,从上往下找规则,发现user:mary:rw-能够精确匹配mary用户 --》 rw-

尽管mary是属于admin组,admin组有rwx的权限,但是由于mary的规则在前面,所有优先生效

bean由于找不到精确匹配bean用户的规则,而bean是属于admin组,根据文件的定义,该文件是属于admin组的,所以bean的权限是按照group::rwx的权限去操作。 --》 rwx

jack  不是文件的主人,并且找到user:jack:r-- ,所以只读

student用户,不是文件主人,也找不到精确匹配的user定义规则,也找不到相关组的定义规则,最后属于other --》 ---

理解mask的作用

=========================================

删除关于jack的规则

# setfacl -x user:jack /tmp/passwd

去掉所有规则

# setfacl -b /tmp/passwd

===========================================

例子2:要求在server0虚拟机上完成

执行 lab acl setup开始实验

controller组成员:student

sodor组成员有:thomas,james 密码均为redhat

要求: sodor组的成员可以对/shares/steamies有所有的权限,但sodor组成员james对该目录以及目录里的现有文件和以后建立的文件什么权限都没有.

目录里的display_engines.sh用于测试执行权限.

# setfacl -Rm g:sodor:rwX /shares/steamies

# setfacl -Rm u:james:- /shares/steamies

# setfacl -m d:g:sodor:rwx /shares/steamies

# setfacl -m d:u:james:- /shares.steamies

# exit

$ su - thomas

$ cd /shares/steamies/

$ cat roster.txt

$ ./display_engines.sh

$ mkdir tidmouth

$ echo "toot toot" >tidmouth/whistle.txt

$ exit

$ su - james

$ cd /shares/steamies

$ ls !$

$ cat !$/roster.txt

student$ newgrp controller

==================================================

删除目录的所有默认acl

# setfacl -k /tmp/dir

===================================================

实验:

共享目录: /shares/cases,目录下存在两个文件分别为adventures.txt和moriarty.txt

bakerstreet组成员:holmes,watson

scotlandyard组成员: lestrade,gregson,jones

所有用户密码均为redhat

所有更改应用在cases目录及其下的文件,但不会应用到/shares目录

所有bakerstreet组成员可以对cases目录里的文件有读和写权限

scotlandyard组成员jones只能对目录里的文件有只读权限,其余的scotlandyard组成员均可以对该目录的文件有读写权限

目录里的所有内容都属于bakerstreet组,让目录里的文件可以让文件的拥有者和拥有组可以读写,其他用户没有任何权限,要求目录里以后新建的文件都自动属于bakerstreet组

# lab acl setup

# chgrp -R bakerstreet /shares/cases/

# chmod g+s /shares/cases/

# setfacl -R -muser::rwX,group::rwX,group:scotlandyard:rwX,user:jones:rX,other::-/shares/cases/

# setfacl -md:user::rwX,d:group::rwx,d:group:scotlandyard:rwx,d:user:jones:rx,other::-/shares/cases/

# lab acl grade

个人笔记:

[[email protected] ~]# chown tom:admin/tmp/passwd

[[email protected] ~]# chmod 644 /tmp/passwd

[[email protected] ~]# ll /tmp/passwd

-rw-r--r--. 1 tom admin 2005 Jun 28 21:41/tmp/passwd

[[email protected] ~]# setfacl -mu::rwx,u:mary:rw,g:admin:rwx,u:jack:r,o::-,g:tom:r /tmp/passwd

[[email protected] ~]#

[[email protected] ~]# getfacl /tmp/passwd

getfacl: Removing leading ‘/‘ from absolutepath names

# file: tmp/passwd

# owner: tom

# group: admin

user::rwx

user:jack:r--

user:mary:rw-

group::r--

group:tom:r--

group:admin:rwx

mask::rwx

other::---

改MASK

[[email protected] ~]# setfacl -m mask::rx/tmp/passwd

[[email protected] ~]# setfacl /tmp/passwd

Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ...} file ...

Try `setfacl --help‘ for more information.

[[email protected] ~]# getfacl /tmp/passwd

getfacl: Removing leading ‘/‘ from absolutepath names

# file: tmp/passwd

# owner: tom

# group: admin

user::rwx

user:jack:r—

user:mary:rw-                    #effective:r--

group::r--

group:tom:r--

group:admin:rwx                        #effective:r-x

mask::r-x

other::---

对user和other是不受影响的,中间的用户才受MASK的影响。

删除设定的权限

[email protected] ~]# setfacl -x user:jack/tmp/passwd

[[email protected] ~]# setfacl /tmp/passwd

Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ...} file ...

Try `setfacl --help‘ for more information.

[[email protected] ~]# getfacl /tmp/passwd

getfacl: Removing leading ‘/‘ from absolutepath names

# file: tmp/passwd

# owner: tom

# group: admin

user::rwx

user:mary:rw-

group::r--

group:tom:r--

group:admin:rwx

mask::rwx

other::---

[[email protected] ~]# setfacl -x /tmp/passwd

setfacl: Option -x: Invalid argument nearcharacter 1

[[email protected] ~]# setfacl -b /tmp/passwd

[[email protected] ~]# getfacl /tmp/passwd

getfacl: Removing leading ‘/‘ from absolutepath names

# file: tmp/passwd

# owner: tom

# group: admin

user::rwx

group::r--

other::---

[[email protected] ~]#

例2.

时间: 2024-12-27 22:08:34

RH134-6 使用访问控制列表限制文件访问的相关文章

ACL访问控制列表——标准IP访问列表(理论+实验)

ACL访问控制列表的功能 1.限制网络流量.提高网络性能2.提供对通信流量的控制手段3.提供网络访问的基本安全手段4.在网络设备接口处,决定哪种类型的通信流量被转发.哪种类型的通信流量被阻塞 ACL的工作原理 1.访问控制列表在接口应用的方向出方向:已经过路由器的处理,正离开路由器接口的数据包入方向:已达到路由器接口的数据包,将被路由器处理列表应用到接口方向与数据方向有关 ACL规则 1. 从上到下依次匹配 2. 一旦被某条ACL匹配,则停止查找 3. 依照上两条规则,ACL的精确或者严格规则写

[IIS 7.5]错误消息 401.3: 您无权使用您提供的凭据查看此目录或页(由于访问控制列表而导致访问被拒绝)。

错误截图: 解决方式:

文件访问控制列表

引入场景: tom创建的文件:属主为tom:属组为tom的基本组 Jerry想要访问tom创建的文件:则需要other有rw-的权限:这样做是很危险的 另一个方法就是将该文件的属主改为Jerry,但是普通用户tom是不能执行命令chown 这就引入了FACL的概念 FACL:文件访问控制列表 利用文件扩展属性保存额外的访问控制权限 setfacl:设置facl -m:设定额外的访问控制列表 u:UID:perm g:GID:perm -x:取消定义的额外的访问控制列表 u:UID g:GID -

特殊权限位及文件访问控制列表

一.特殊权限位 1.SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者 chmod u+s FILE chmod u-s FILE 如果FILE本身原来就有执行权限,则SUID显示为s:否则显示S 2.SGID: 运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组 3.Sticky: 在一个公共目录,每个都可以创建文件,删除自己的文件,但不能删除别人的文件 二.文件访问控制列表 利用文件扩展保存额外的访问控制权限 1.setfacl--设置文件访问

ACL(access control list)访问控制列表(理论篇)

ACL(access control list):访问控制列表(多用于路由.三层交换中建立包过滤防火墙) 一.ACL分类 1.标准型访问控制列表(1)只能基于源IP 地址过滤(2)该种列表的访问控制列表号为1~992.扩展访问控制列表(1)基于源IP.目的IP.指定协议.端口.标志过滤数据(2)该种列表的访问控制列表号为100~1993.命名访问控制列表--包含标准访问和扩展访问(1)该种列表允许在标准和扩展列表中使用"名称代替表号" 二.过滤参数 1.访问控制列表基于三层(基于IP)

linux文件权限管理与ACL访问控制列表

一.文件属性 1.文件属性: 文件属性操作 chown : change owner  ,设置文件所有者 chgrp : change group  ,设置文件的属组 文件属主修改: chown 格式:chown [OPTION]- [OWNER][:[GROUP]] FILE- 用法: OWNER OWNER:GROUPNAME    (同时修改属主.属组) :GROUPNAME                (默认属主,修改属组) ( 命令中的冒号可用.替换:) chown  –refere

facl:文件访问控制列表

假如我们有两个用户:tom and jerry,我们用tom建立一个文件 ,想让jerry也可以访问,那我们一般会给这个文件的其它人权限,但是一但给了其它人权限,那不权jerry可以访问,其它用户也可以访问,这样是不合理不安全的. 根据上述情况,我们就要引入文件访问控制列表了. facl: filesystem access control list 利用文件扩展保存额外的控制权限,其它人的权限可以不改变,但是我们可以明确规定一个文件可以被哪些用户访问. setfacl: 这里显示的是基本权限,

文件权限和访问控制列表

在linux管理中,为了使不同的用户对文件有不同的操作权限.我们需要正确的修改文件的权限,一方面是为安全着想,另一方面则是防止自己辛辛苦苦码出的东西被其它用户给误删. 1.如何修改文件的属主和属主: 前面用户和组管理的内容中,我们已经对文件的属主.属组问题做了说明.有时候我们需要对一些文件的属组和属组进行修改, 这里会用到两个命令:chgrp和chown命令. (1)修改文件的属组:chgrp chgrp [OPTION]... GROUP FILE.. chgrp [OPTION]... --

Linux入门之facl文件访问控制列表

Linux入门之facl文件访问控制列表 简介: linux默认的3中基本权限(rwx)以及3中特殊权限(suid,sgid,sticky)在平常情况下做适当调整即可,但是如果出现多个组多个成员情况下对某些文件或目录做权限配置就会发现不够分配,所以为了解决此类情况linux内核出现了acl(访问控制列表)模块来进行分层管理 版本对功能支持度: 在readhat7.centos7默认创建的xfs.ext4文件系统会有acl功能,如果redhat5.6等版本 新格式化的文件系统可能需要命令去添加: