权限管理-ACL

                                权限管理-ACL

                                                        作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.ACL权限简介与开启

1.ACL权限简介

  比如在根下有一个目录(”/yinzhengjie“),这个目录的所有者和所属组都是root,查看其权限是770,这意味着,只有root用户或是在root组里面的用户才能操作这个文件。如果有一个人不是root又不是root这个组里面的用户,但是就是有一个需求想要看”/yinzhengjie“这个目录下的内容该如何呢?

Linux在这一点的处理上和windows有点像,它的操作方法就是给这个用户加权限即可。让其有访问这个目录的权限即可,这个时候我们就得学习一下ACL啦。

2.查看分区ACL权限是否开启

要想利用ACL这个权限,还得看分区是否支持ACL权限哟~

 1 [[email protected] ~]# df -h
 2 Filesystem Size Used Avail Use% Mounted on
 3 /dev/sda2 18G 2.8G 14G 17% /
 4 tmpfs 491M 224K 491M 1% /dev/shm
 5 /dev/sda1 283M 28M 240M 11% /boot
 6 [[email protected] ~]#
 7 [[email protected] ~]#
 8 [[email protected] ~]#
 9 [[email protected] ~]# dumpe2fs -h /dev/sda2 | grep "Default mount options"
10 dumpe2fs 1.41.12 (17-May-2010)
11 Default mount options: user_xattr acl
12 [[email protected] ~]#   

                      

温馨提示:如果上图中没有ACL权限的话,也不要慌,还是有解决方案的。

a>.临时开启分区ACL权限:(重新挂载根分区,并挂载加入acl权限。)

[[email protected] ~]# mount -o remount,acl /

[[email protected] ~]#

b>.编辑"/etc/fstab"配置文件(它是开机自动挂载的文件。)

  修改这个配置文件一定要小心,一旦修改错误,系统就会崩溃,你将无法启动你的操作系统哟,因为你挂载根就会挂载失败啊,当然,还是可以通过救援模式进行修复的。

                      

二.查看与设定ACL权限

1.查看ACL命令(getfacl)

                      

2.设定ACL权限的命令(setfacl)

我们先看看常用的几个参数的解释:

                      

 1 [[email protected] ~]# mkdir /yinzhengjie/
 2 [[email protected] ~]# useradd canglaoshi
 3 [[email protected] ~]# useradd jichimingbu
 4 [[email protected] ~]# groupadd AVgroup
 5 [[email protected] ~]# gpasswd -a canglaoshi AVgroup
 6 Adding user canglaoshi to group AVgroup
 7 [[email protected] ~]# gpasswd -a jichimingbu AVgroup
 8 Adding user jichimingbu to group AVgroup
 9 [[email protected] ~]#
10 [[email protected] ~]# tail -1 /etc/group
11 AVgroup:x:504:canglaoshi,jichimingbu
12 [[email protected] ~]#
13 [[email protected] ~]# chown root:AVgroup /yinzhengjie/
14 [[email protected] ~]# chmod 770 /yinzhengjie/
15 [[email protected] ~]# ll -d /yinzhengjie/
16 drwxrwx---. 4 root AVgroup 4096 9月  28 12:56 /yinzhengjie/
17 [[email protected] ~]#
18 [[email protected] ~]#
19 [[email protected] ~]# useradd yangmi
20 [[email protected] ~]# echo "123456" | passwd --stdin yangmi
21 更改用户 yangmi 的密码 。
22 passwd: 所有的身份验证令牌已经成功更新。
23 [[email protected] ~]#
24 [[email protected] ~]# setfacl -m u:yangmi:rx /yinzhengjie/
25 [[email protected] ~]#
26 [[email protected] ~]# getfacl /yinzhengjie/
27 getfacl: Removing leading ‘/‘ from absolute path names
28 # file: yinzhengjie/
29 # owner: root
30 # group: AVgroup
31 user::rwx
32 user:yangmi:r-x
33 group::rwx
34 mask::rwx
35 other::---
36
37 [[email protected] ~]#
38 [[email protected] ~]# ll -d /yinzhengjie/
39 drwxrwx---+ 4 root AVgroup 4096 9月  28 12:56 /yinzhengjie/
40 [[email protected] ~]#
41 [[email protected] ~]# su yangmi
42 [[email protected] root]$
43 [[email protected] root]$ cd /yinzhengjie/
44 [[email protected] yinzhengjie]$ ls
45 golang  postfix
46 [[email protected] yinzhengjie]$ touch {1..5}.txt
47 touch: 无法创建"1.txt": 权限不够
48 touch: 无法创建"2.txt": 权限不够
49 touch: 无法创建"3.txt": 权限不够
50 touch: 无法创建"4.txt": 权限不够
51 touch: 无法创建"5.txt": 权限不够
52 [[email protected] yinzhengjie]$ 

                                  

  创建之后,可以进行以下测试,发现之后读取权限确实没有写的权限呢

                           

  如果你想要对一个组设置ACL权限,操作和用户类似:

                            

三.最大有效权限与删除ACL权限

1.最大有限权限mask

  mask是用来指定最大有效权限的。如果我给用户赋予了ACL权限,是需要和mask的权限“相与”才能得到用户的真正权限。

                              

  

mask权限一般适用于对一个文件提前做出最大权限的规划,这样即使我用acl给其他用户分配权限过高,但是只要和mask进行相与操作,最终用户得到的权限仍然在我们的控制范围之内呢。

                            

2.删除ACL权限

 1 [[email protected] ~]# setfacl -x g:movie /yinzhengjie/
 2 [[email protected] ~]# getfacl /yinzhengjie/
 3 getfacl: Removing leading ‘/‘ from absolute path names
 4 # file: yinzhengjie/
 5 # owner: root
 6 # group: AVgroup
 7 user::rwx
 8 user:yangmi:r-x
 9 group::rwx
10 mask::rwx
11 other::---
12
13 [[email protected] ~]#
14 [[email protected] ~]# setfacl -b /yinzhengjie/
15 [[email protected] ~]# getfacl /yinzhengjie/
16 getfacl: Removing leading ‘/‘ from absolute path names
17 # file: yinzhengjie/
18 # owner: root
19 # group: AVgroup
20 user::rwx
21 group::rwx
22 other::---
23
24 [[email protected] ~]# ll -d /yinzhengjie/
25 drwxrwx---. 4 root AVgroup 4096 9月 28 12:56 /yinzhengjie/
26 [[email protected] ~]#

                                

四.默认ACL权限和递归ACL权限

1.递归ACL权限

  递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。

 1 [[email protected] ~]# mkdir /yinzhengjie
 2 [[email protected] ~]# touch /yinzhengjie/{1..5}.txt
 3 [[email protected] ~]# ll /yinzhengjie/
 4 总用量 0
 5 -rw-r--r--. 1 root root 0 9月 28 23:29 1.txt
 6 -rw-r--r--. 1 root root 0 9月 28 23:29 2.txt
 7 -rw-r--r--. 1 root root 0 9月 28 23:29 3.txt
 8 -rw-r--r--. 1 root root 0 9月 28 23:29 4.txt
 9 -rw-r--r--. 1 root root 0 9月 28 23:29 5.txt
10 [[email protected] ~]#
11 [[email protected] ~]# setfacl -m u:yangmi:rx -R /yinzhengjie/
12 [[email protected] ~]#
13 [[email protected] ~]# ll /yinzhengjie/
14 总用量 20
15 -rw-r-xr--+ 1 root root 0 9月 28 23:29 1.txt
16 -rw-r-xr--+ 1 root root 0 9月 28 23:29 2.txt
17 -rw-r-xr--+ 1 root root 0 9月 28 23:29 3.txt
18 -rw-r-xr--+ 1 root root 0 9月 28 23:29 4.txt
19 -rw-r-xr--+ 1 root root 0 9月 28 23:29 5.txt
20 [[email protected] ~]#
21 [[email protected] ~]# getfacl /yinzhengjie/1.txt
22 getfacl: Removing leading ‘/‘ from absolute path names
23 # file: yinzhengjie/1.txt
24 # owner: root
25 # group: root
26 user::rw-
27 user:yangmi:r-x
28 group::r--
29 mask::r-x
30 other::r--
31
32 [[email protected] ~]#

                                    

时间: 2024-10-08 23:06:53

权限管理-ACL的相关文章

Linux高级权限管理 - ACL

传统权限模型缺点: 传统的UGO权限模型无法应对负责的权限设置要求,如对于一个文件只能设置一个组,并且对该组进行权限控制,但是如果该文件有多个组合会对其进行访问,并且都要要求权限限制时,传统的UGO模型就无法满足需求了. 这时候就需要采用ACL权限来管理了 ACL(Access Control List)是一种高级权限机制,允许我们对一个文件或文件夹进行灵活的.复杂的权限设置 ACL需要在挂在文件的时候打开ACL功能: mount -o acl /dev/sda5 /mnt ACL允许针对不同用

权限管理ACL权限

简介 文件的权限一般主要针对三种用户类型:所有者.用户组.其他人:如果有一个用户,我们希望他对文件的权限不在上述三种用户权限之内,我们需要怎么做呢?再新添一个用户组,并将该用户组设为文件的用户组?不可以,一个文件只能有一个用户组,如果指定了新的用户组,之前的用户组将作废.ACL命令就是为了解决三种基本用户类型不满足要求时的问题 查看分区的ACL权限是否开启 ACL权限需要文件所在的分区的支持:首先查看一下系统有哪些分区,使用df -h命令 根分区的文件系统是/dev/sda5,查看该分区是否开启

linux高级权限管理ACL

传统的UGO仅能对单个文件加入单个组 改进:单个文件设置多个组并且设置权限限制 ACL :高级权限机制 允许对不同用户.不同组对一个目标文件进行权限设置 mount -o acl /dev/sda2 /mnt 参数o 指定 acl 表示打开这个功能,也就是在挂载的时候我们做这些事情 查看ACL设置 getfacl filename 设置用户ACL setfacl -m u:username:rwx filename 注意设置完以后 我们查看一下 设置组的权限 setfacl -m g:group

Linux权限管理--ACL权限简介

ACL权限不是针对某个文件或某个目录的,它是针对分区而言的. 使用df -h 查看系统分区 1 [[email protected] ~]$ df -h 2 Filesystem Size Used Avail Use% Mounted on 3 /dev/sda3 16G 2.9G 12G 20% / 4 tmpfs 947M 0 947M 0% /dev/shm 5 /dev/sda1 291M 35M 242M 13% /boot 6 /dev/sr0 3.0G 3.0G 0 100% /

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

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

权限管理之ACL

权限管理之ACL setfacl getfacl 试验环境:CentOS 7.2 ACL(Access Control List) 访问控制列表,在网络中应用十分广泛,主要用来控制与过滤数据流的走向,提高网络性能,在Linux中,我们可以用setfacl来设置基于用户权限的ACL. setfacl 主要用途 设置ACL setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file ... setfacl --restore=fil

Linux权限管理及用户与用户组

第一部分:Linux权限管理 一.基本权限 linux权限机制采用UGO模式.其中 u(user)表示所属用户.g(group)表示所属组.o(other)表示除了所属用户.所属组之外的情况. u.g.o 都有读(read).写(write).执行(excute) 三个权限,所以UGO模式是三类九种基本权限. 用命令 ls -l 可列出文件的权限,第一列输出明确了后面的输出(后面一列代表 ugo权限).第一个字母对应的关系: "-"    普通文件 "d"   目录

linux的档案权限管理

1.linux普通权限 chgrp:改变档案所有组. 用法:chgrp  选项  组名   文件 必要参数: -c 当发生改变时输出调试信息 -f 不显示错误信息 -R 处理指定目录以及其子目录下的所有文件 -v 运行时显示详细的处理信息 --dereference 作用于符号链接的指向,而不是符号链接本身 --no-dereference 作用于符号链接本身 选择参数: --reference=<文件或者目录> --help 显示帮助信息 --version 显示版本信息 chown:改变档

用户权限管理

一.用户权限下放(sudo) 普通用户对系统文件没有写入的权限,所以在必要时候需要将系统管理员的权限下放给普通用户,使其对系统有特定的管理权限. (1).权限下放动作的配置文件 :/etc/sudoers,用visudo命令编辑 文件内容编辑模式 授权目标用户    主机名称=(授权用户得到的新用户身份)    授权用户执行命令 test        ALL=(ALL)            ALL 例:[[email protected] ~]# visudo test        ALL