linux用户权限 -> ACL访问控制

UGO设置基本权限: 只能一个用户,一个组和其他人
ACL设置基本权限: r、w、x
设定acl只能是root管理员用户. 相关命令: getfacl , setfacl

facl权限

简介

facl的权限是针对某一类用户设置的。
如果希望对某个指定的用户进行单独的权限控制就需要用到文件的访问控制列表acl
设定acl只能是root管理员用户。

使用方法

查看权限

在没有设定acl时,看到的权限是相同的,下面的结果是默认权限

[[email protected] ~]# getfacl /tmp
getfacl: Removing leading ‘/‘ from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx

修改权限

#环境创建:
新增三个普通用户alice、bgx、jack

#权限需求
alice 拥有读写权限    rw
bgx  没有任何权限     -
jack 组拥有读权限     r
匿名用户拥有读写权限  rw

#权限设定
setfacl -m u:alice:rw test.txt
setfacl -m u:bgx:- test.txt
setfacl -m g:jack:r test.txt
setfacl -m o::rw test.txt

移除权限

移除文件或目录的所有facl权限    setfacl -b test.txt
移除jack组的权限               setfacl -x g:jack test.txt
删除目录的所有默认              acl setfacl -k /tmp

高级特性mask

mask用于临时降低用户或组的权限,但不包括文件的属主和匿名用户,那么mask最主要的作用是用来决定他们的最高权限。
mask默认不会对匿名用户降低权限,所以为了便于管理文件的访问控制,建议匿名用户的权限置为空。

临时降低用户或组权限setfacl -m mask::rw filename

提示:

1.mask会影响所有用户,但不会影响属主以及匿名用户(掐头去尾)。
2.mask权限决定了用户访问文件时的最高权限。
3.mask用于临时降低用户访问文件的权限。
4.任何重新设置acl访问控制会清理mask所设定的权限

高级特定default继承

alice能够对/opt目录以及以后在/opt目录下新建的文件有读、写、执行权限

1)赋予 alice 对/opt 读写执行权限
etfacl -R -m u:alice:rwX /opt

2)赋予 alice 对以后在/opt 下新建的文件有读写执行权限(使 alice 的权限继承)
setfacl -m d:u:alice:rwX /opt

3)检查对应的权限
getfacl /opt/
getfacl: Removing leading ‘/‘ from absolute path names
# file: opt/
# owner: root
# group: bgx
user::rwx
user:alice:rwx
group::rwx
mask::rwx
other::rwx
default:user::rwx
default:user:alice:rwx
default:group::rwx
default:mask::rwx
default:other::rwx

ACL访问控制实践案例

案例1: 将新建文件的属性修改tom:admin, 权限默认为644
要求: tom对该文件有所有的权限, mary可以读写该文件, admin组可以读写执行该文件, jack只读该文件, 其他人一律不能访问该文件

//实验前, 建立几个普通用户
[[email protected] ~]# useradd tom
[[email protected] ~]# useradd bean
[[email protected] ~]# useradd mary
[[email protected] ~]# useradd jack
[[email protected] ~]# useradd sutdent
[[email protected] ~]# groupadd admin
[[email protected] ~]# gpasswd -a mary admin
[[email protected] ~]# gpasswd -a bean admin

//检查用户属性
[[email protected] ~]# id tom
uid=1004(tom) gid=1004(tom) groups=1004(tom)
[[email protected]-node1 ~]# id mary
uid=1006(mary) gid=1006(mary) groups=1006(mary),1007(admin)
[[email protected]-node1 ~]# id bean
uid=1005(bean) gid=1005(bean) groups=1005(bean),1007(admin)
[[email protected]-node1 ~]# id jack
uid=1002(jack) gid=1002(jack) groups=1002(jack)
[[email protected]-node1 ~]# id sutdent
uid=1007(sutdent) gid=1008(sutdent) groups=1008(sutdent)

//准备相关文件
[[email protected] ~]# cp /etc/passwd /root/
[[email protected]-node1 ~]# chown tom:admin passwd
[[email protected]-node1 ~]# chmod 644 passwd

//检查设定前的acl列表
[[email protected] ~]# getfacl passwd
# file: passwd
# owner: tom
# group: admin
user::rw-
group::r--
other::r--

//设定acl权限
[[email protected] ~]# setfacl -m u::rwx,u:mary:rw,u:jack:r,g:admin:rwx,o::- passwd

//检查acl权限
[[email protected] ~]# getfacl passwd
# file: passwd
# owner: tom
# group: admin
user::rwx
user:jack:r--
user:mary:rw-
group::r--
group:admin:rwx
mask::rwx
other::---

acl的控制规则是从上往下匹配
1.tom由于是文件的拥有者,所以直接按照user::rwx指定的权限去操作
2.mary用户从上往下寻找匹配规则,发现user:mary:rw-能够精确匹配mary用户,尽管mary属于admin组,同时admin组有rwx的权限,但是由于mary用户的规则在前面,所有优先生效。
3.bean由于找不到精确匹配的规则,而bean是属于admin组,根据文件的定义,该文件是属于admin组,所以bean的权限是按照group:admin:rwx的权限去操作。
4.jack用户从上往下寻找匹配规则,发现user:jack:r--能够精确匹配jack用户。
5.student用户找不到精确匹配的user定义规则, 也找不到相关组的定义规则,最后属于other

案例2: lab acl setup

controller组成员有:student
sodor组成员有:thomas,james

目录: /shares/steamies
文件: /shares/steamies/file
脚本: /shares/steamies/test.sh

controller属于该目录的所属组, 新建文件必须属于controller组
sodor组的成员对该目录拥有rwx权限
sodor组成员james对该目录及子目录(包括以后新建立的文件)没有任何权限

实践操作

//准备用户
[[email protected] ~]# groupadd controller
[[email protected]-node1 ~]# groupadd sodor
[[email protected]-node1 ~]# useradd student -G controller
[[email protected]-node1 ~]# useradd thomas -G sodor
[[email protected]-node1 ~]# useradd james -G sodor

//准备目录
[[email protected] ~]# mkdir /shares/steamies -p
[[email protected]-node1 ~]# echo "file" >> /shares/steamies/file
[[email protected]-node1 ~]# echo "echo 123" >> /shares/steamies/test.sh
[[email protected]-node1 ~]# chmod 755 /shares/steamies/test.sh
[[email protected]-node1 ~]# chown -R  :controller /shares/steamies/
[[email protected]-node1 ~]# chmod g+s /shares/steamies/

//设定权限(X表示,如果原本有执行权限就保留,如果没有则不添加)
[[email protected] ~]# setfacl -R -m g:sodor:rwX,u:james:- /shares/steamies/

//设定继承规则
[[email protected] ~]# setfacl -R -m d:g:sodor:rwX,d:u:james:- /shares/steamies/

[[email protected]-node1 steamies]# getfacl /shares/steamies/
getfacl: Removing leading ‘/‘ from absolute path names
# file: shares/steamies/
# owner: root
# group: controller
# flags: -s-
user::rwx
user:james:---
group::r-x
group:sodor:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:sodor:rwx
default:mask::rwx
default:other::r-x

原文地址:https://www.cnblogs.com/tim1blog/p/9746640.html

时间: 2024-11-05 21:43:50

linux用户权限 -> ACL访问控制的相关文章

Linux用户权限acl配置

环境:apache用户为www-dataftp用户为ftp-user网站目录为/www,权限为777 问题:www-data用户在/www目录下自动创建的目录和文件,ftp用户都无法操作. 要求:ftp-user能操作/www目录下所有文件 setfacl -R -m u:ftp-user:rwx /www setfacl -R -m --set u:ftp-user:rwx /www #查看权限情况 getfacl /www

Linux文件权限与访问控制

Linux文件权限与访问控制 访问文件用户3类: 文件所有者 同组成员 其他人 权限--- --- --- (rwx) 依次对应3类用户 file:6rw 4r 0 x1 dir: 7rwx 5r-x 0 默认权限 umask内部命令 用来生成数字 umask+default =file666/dir777 umask +数字 修改umask值 umask 本质含义取消对应权限 原理计算: 666 666 125 125 110110110 541 001010101 542 对于文件偶数不动奇

linux 用户权限设置

# useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录). 假设当前用户是sam,则下面的命令修改该用户自己的口令: # passwd Old password:****** New password:******* Re-enter new password:******* 如果是超级用户,可以用下列形式指定任何用户的口令: # passwd sam New

Linux用户权限

每个Linux文件具有四种访问权限:可读(r).可写(w).可执行(x)和无权限(-).    利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为    准.第一个字段由10个字符组成,如下:        -rwxr-xr-x    第一位表示文件类型,-表示文件,d表示目录    2-4位表示文件所有者的权限,u权限    5-7位表示文件所有者所属组成员的权限,g权限    8-10位表示所有者所属组之外的用户的权限,o权限       2-10位的权限总和有时称为

003day–linux用户权限常用命令

一.useradd命令选项: –u:指定用户的UID         useradd –u 1024 mu    #指定mu的UID为1024 –g:指定用户所属的群组   useradd –g jack mu      #指定mu的所属群组为jack –d:指定用户的家目录      useradd –d /home/family mu  #指定mu家目录为 /home/family –c:指定用户的备注信息    useradd –c 'mu_test' mu  #mu的备注信息为'mu_t

Linux用户权限及管理介绍

Linux用户权限及管理相关介绍.Linux的哲学思想:一切皆文件,目录也被看成文件,为了自己创建的文件不被他人查看及使用或删除,从而有了权限的概念,对每个文件赋予权限,定制此文件对谁开放,谁可以查看或使用:我们在命令行使用ll命令时查看某个文件或目录时得到的信息中[[email protected] ~]# ll?drwxr-xr-x 2 root root 6 Jul 19 09:21 test-rw-r--r-- 1 root root 0 Jul 19 09:11 test.txt.其中

linux用户权限管理

在Linux中,权限的分配和管理是一件很重要的事.因为这对系统中文件的管理非常重要.如何分配好权限是其中的关键. 权限分为两种使用权(MODE)和所有权(OWNERSHIP) 首先我来看一下MODE的构成: r:可读 w:可写 x:executable可执行 对目录来说: 拥有r权限时可以使用ls命令来查看目录 拥有w权限时可修改此目录下的文件名或文件列表,即可删除文件 拥有x权限时可以使用ls -l命令来获取其中的文件的详细信息(这是基本权限,没有                 时什么都做不

浅谈linux用户权限相关的文件(文中绿色加深字体是有出入的地方,请哪位高人看到后不吝赐教)

说到linux中的用户权限得先聊一聊操作系统的组成,一般操作系统是由硬件.内核.库.shell(中包括GUI(图形用户界面)和CLI(命令行界面)两种,还有就是完成不同工作的应用程序了.一个应用程序想要运行起来,必须要把其所依赖的库文件调用到内核当中.如果不同应用程序所依赖的库文件相同且它们同时在系统中运行,这时就会调用同一个库文件的副本.应用程序也是一样,同一个应用程序可能被打开运行多次,虽然运行的是同一个程序,但是后台运行的该程序的进程是不同的.Linux中不同用户所调用的是同一个应用程序不

大数据之Linux用户权限设置

用户 是Linux系统工作中重要的一环, 用户管理包括 用户 与 组 管理,在Linux系统中, 不论是由本级或是远程登录系统, 每个系统都必须拥有一个账号, 并且对于不同的系统资源拥有不同的使用权限对 文件 / 目录 的权限包括: 序号 权限 英文 缩写 数字代码 01 读 read r 4 02 写 write w 2 03 执行 execute x 1 04 无权限  -    0 ls -l 可以查看文件夹下文件的详细信息, 从左到右 依次是: 权限,             第一个字符