linux中ACL权限

1.ACL权限简介与开启

一.ACL权限是为了解决所有者/所属组/其他人三种身份不足的问题

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

dumpe2fs命令是查询指定分区详细文件系统信息的命令

dumpe2fs -h /dev/sda3

-h 仅显示超级块中信息,而不显示磁盘块组的详细信息
[[email protected] ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   14G   25G  36% /
devtmpfs        911M     0  911M   0% /dev
tmpfs           920M     0  920M   0% /dev/shm
tmpfs           920M  548K  920M   1% /run
tmpfs           920M     0  920M   0% /sys/fs/cgroup
tmpfs           184M     0  184M   0% /run/user/0
tmpfs           184M     0  184M   0% /run/user/1002
[[email protected] ~]# dumpe2fs -h /dev/vda1
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          eb448abb-3012-4d8d-bcde-94434d586a31
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              2621440
Block count:              10485248
Reserved block count:     524262
Free blocks:              8958387
Free inodes:              2519237
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1021
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
RAID stride:              32639
Flex block group size:    16
Filesystem created:       Sun Oct 15 23:18:59 2017
Last mount time:          Tue Aug 14 10:15:43 2018
Last write time:          Tue Aug 14 18:15:42 2018
Mount count:              6
Maximum mount count:      -1
Last checked:             Wed Jun 27 22:35:57 2018
Check interval:           0 (<none>)
Lifetime writes:          30 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       1050280
Default directory hash:   half_md4
Directory Hash Seed:      2579899c-6862-4625-a8e6-425550384200
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x006beeea
Journal start:            22131

Default mount options: user_xattr acl显示支持acl

三.临时开启分区ACL权限

重新挂载根分区,并挂载加入acl权限

mount -o remount,acl /

四.永久开启分区ACL权限(一定要谨慎)

# 加入acl
vim /etc/fstab
UUID=eb448abb-3012-4d8d-bcde-94434d586a31 /                       ext4    defaults        1 1
修改为
UUID=eb448abb-3012-4d8d-bcde-94434d586a31 /                       ext4    defaults,acl        1 1

# 重新挂载文件系统或重新启动系统,使修改生效
mount -o remount /

2.查看和设定ACL权限

一.查看ACL命令

查看acl权限

getfacle 文件名

二.设定ACL权限的命令

setfacl 选项 文件名

选项 作用
-m 设定ACL权限
-x 删除指定的ACL权限
-b 删除所有的ACL全新啊
-d 设定默认ACL权限
-k 删除默认ACL权限
-R 递归设定ACL权限

三.给用户设定ACL权限和给组设定ACL权限

# 进入tmp目录
[[email protected] /]# cd /tmp

# 创建project目录
[[email protected] tmp]# mkdir project

# 查看是否创建
[[email protected] tmp]# ls
Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)>  eternityz  hsperfdata_root  issue.soft  Japan  mysql.sock  php-cgi.sock  project  systemd-private-9255c5ee9ec84f5987c1d9ba485e177e-ntpd.service-eKcnmD  test.txt

# 添加用户zhangsan
[[email protected] tmp]# useradd zhangsan

# 添加用户lisi
[[email protected] tmp]# useradd lisi

# 添加组tgroup
[[email protected]q95pbpe1hh0kkwoiz tmp]# groupadd tgroup

# 将zhangsan添加到组tgroup中
[[email protected] tmp]# gpasswd -a zhangsan tgroup
Adding user zhangsan to group tgroup

# 将lisi添加到组tgroup中
[[email protected] tmp]# gpasswd -a lisi tgroup
Adding user lisi to group tgroup

# 查看组内的用户(最后一行)
[[email protected] tmp]# cat /etc/group
root:x:0:eternity
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:30:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
ssh_keys:x:999:
input:x:998:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:997:
postdrop:x:90:
postfix:x:89:
chrony:x:996:
sshd:x:74:
ntp:x:38:
tcpdump:x:72:
nscd:x:28:
screen:x:84:
mysql:x:1000:
www:x:1001:
rabbitmq:x:995:
eternity:x:1002:
eternityz:x:1003:
slocate:x:21:
saslauth:x:76:
mailnull:x:47:
smmsp:x:51:
zhangsan:x:1004:
lisi:x:1005:
tgroup:x:1006:zhangsan,lisi

# 将project目录的所属组更改为tgroup
[[email protected] tmp]# chown root:tgroup project

# 将project目录的权限更改为770
[[email protected] tmp]# chmod 770 project

# 查看更改权限的project目录
[[email protected] tmp]# ll -d project
drwxrwx--- 2 root tgroup 4096 Dec 10 17:00 project

# 增加试听学员st
[[email protected] tmp]# useradd st

# 修改试听学员st的密码
[[email protected] tmp]# passwd st
Changing password for user st.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

# 给试听学员st设定ACL权限rx
[[email protected] tmp]# setfacl -m u:st:rx project

# 查看ACL权限
[[email protected] tmp]# getfacl project
# file: project
# owner: root
# group: tgroup
user::rwx
user:st:r-x  #st用户拥有rx权限
group::rwx
mask::rwx
other::---

# 切换到st用户
[[email protected] tmp]# su - st

# 进入/tmp/project目录
[[email protected] ~]$ cd /tmp/project

# 创建文件test.txt,提示没有权限
[[email protected] project]$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied

# 退出st用户
[[email protected] project]$ exit
logout

# 增加组tgroup2
[[email protected] tmp]# groupadd tgroup2

# 给组tgroup2设定ACL权限rwx
[[email protected] tmp]# setfacl -m g:tgroup2:rwx project

# 查看ACL权限
[[email protected] tmp]# getfacl project
# file: project
# owner: root
# group: tgroup
user::rwx
user:st:r-x # 用户st拥有ACL权限rx
group::rwx
group:tgroup2:rwx # 组tgroup2拥有ACL权限rwx
mask::rwx
other::---

有ACL权限和没ACL权限的文件夹

# 没有ACL权限的后面没有+号
[[email protected] tmp]# ll -d project
drwxrwx--- 2 root tgroup 4096 Dec 10 17:00 project

[[email protected] tmp]# setfacl -m u:st:rx project

# 有ACL权限的后面带着+号
[[email protected] tmp]# ll -d project
drwxrwx---+ 2 root tgroup 4096 Dec 10 17:00 project

3.最大有效权限和删除ACL权限

一.最大有效权限mask

[[email protected] tmp]# getfacl project
# file: project
# owner: root
# group: tgroup
user::rwx
user:st:r-x
group::rwx
group:st:rwx
group:tgroup2:rwx
mask::rwx
other::---

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

A B and
r r r
r - -
- r -
- - -

修改mask的值

setfacl -m m:rx project

# 更改mask的值
[[email protected] tmp]# setfacl -m m:rx project

# 查询ACL权限
[[email protected] tmp]# getfacl project
# file: project
# owner: root
# group: tgroup
user::rwx
user:st:r-x
group::rwx                      #effective:r-x
group:st:rwx                    #effective:r-x
group:tgroup2:rwx               #effective:r-x
mask::r-x
other::---

    mask的值只影响具有ACL权限的,不影响用户的权限
    用户st的权限为rx
    组st的ACL权限是rwx,但是实际生效的只是rx权限
    组tgroup2的ACL权限是rwx,但是实际生效的是rx权限

二.删除ACL权限

删除指定用户的ACL权限

setfacl -x u:用户名 文件/文件夹

删除指定用户组的ACL权限

setfacl -x g:组名 文件/文件夹

# 之前的有组tgroup2的ACL权限
[[email protected] tmp]# getfacl project
# file: project
# owner: root
# group: tgroup
user::rwx
user:st:r-x
group::rwx                      #effective:r-x
group:st:rwx                    #effective:r-x
group:tgroup2:rwx               #effective:r-x
mask::r-x
other::---

# 移除组tgroup2的ACL权限
[[email protected] tmp]# setfacl -x g:tgroup2 project

# 再次查询,tgroup2的ACL权限没有了
[[email protected] tmp]# getfacl project
# file: project
# owner: root
# group: tgroup
user::rwx
user:st:r-x
group::rwx
group:st:rwx
mask::rwx
other::---

删除文件或文件假的所有的ACL权限

sefacl -b 文件/文件夹

# 之前project目录的ACL权限
[[email protected] tmp]# getfacl project
# file: project
# owner: root
# group: tgroup
user::rwx
user:st:r-x
group::rwx
group:st:rwx
mask::rwx
other::---

# 移除所有的ACL权限
[[email protected] tmp]# setfacl -b project

# 再次查询,ACL权限和mask都没有了
[[email protected] tmp]# getfacl project
# file: project
# owner: root
# group: tgroup
user::rwx
group::rwx
other::---

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

一.递归ACL权限

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

setfacl -m u:用户名:权限 -R 文件夹

# -R必须在后面,否则报错

# 给文件夹及下面的所有文件及文件夹设置ACL权限,运行此命令后,新建的文件不具备ACL权限

二.默认ACL权限

默认ACL权限的作用是如果给父目录设定了默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限

setfacl -m d:u:用户名:权限 文件夹

# 运行上面的命令之后,以后此文件夹下新建文件或文件夹都具备ACL权限

原文地址:https://www.cnblogs.com/eternityz/p/12386423.html

时间: 2024-11-01 10:16:11

linux中ACL权限的相关文章

&lt;实训|第十三天&gt;linux中ACL权限控制以及磁盘配额,附编译属于自己的linux内核

[[email protected]~]#序言 首先讲讲昨天关于缩容失败,开不机的解决方法:ACL权限也算是一个很重要的知识点,不难,但是很实用:磁盘配额一般不需要自己弄,但是要懂得原理.剩下的就是编译属于自己的linux内核,根据自己的需求不论是硬件还是其他,你都可以定制,但是编译成功与否这个我不敢保证,我也编译了两次才成功的.  开班第十三天: [[email protected]~]#今天的课程大纲 1.缩容失败原因以及开不了机解决方法 2.Linux中ACL权限的详解 3.讲解一下磁盘配

Linux中ACL权限列表

1.ACL权限列表是什么? 为什么要使用ACL列表? 传统的权限仅有三种身份(owner,group,other)搭配三种权限(r,w,x),并没有办法单纯的针对某一个使用者或某一个群组来设定的权限需求,此时就是要使用ACL(文件访问控制列表,Acess Control List)这个机制.注意:因此目前ACL几乎已经默认加入在所有常见的Linux文件系统的挂载参数中(ext2/ext3/ext4/xfs等等),但rhtl6.0以及之前的版本默认不支持acl的功能.2有关facl的命令 查看权限

Linux中ACL权限管理

用户的特殊权限 我们在之前的课程中已经讲过了基本权限.所谓的基本权限指得是,用户对文件拥有所有者所属组和其他人每个身份都有三个权限分别是读.写.执行,今天我们将介绍特殊权限ACL权限. 所谓了ACL权限指的针对一个目录或文件指定一个用户,为这个用户分配指定的权限. 这个ACL权限一般用在需要指定的用户拥有一定的权限的时候才会使用,就相当于windows的文件夹或文件的权限一样的,需要哪个用户有哪些权限就分配就可以了. 举一个例子 图1 上图为一个班级的共享目录,老师属于这个目录的所属主,拥有rw

&lt;实训|第九天&gt;掌握linux中普通的权限控制和三种特殊的权限(sst),做合格的运维工程师

linux中,权限的学习是必不可少的,不论是作为一名运维工程师或者是单一的管理者,学习好linux中的权限控制,你就可以保护好自己的隐私同时规划好你所管理的一切. 权限的学习是很多的,不要认为自己已经把自己的隐私保护的很好,漏洞总是有的,侧面的攻击往往是难以防守的.所以大家跟我一起学习一下基础的权限控制,在后面也会有更多关于权限控制的知识点分享出来.谢谢各位的关注和支持!  开班第九天: 今天的课程大纲: linux系统中文件目录的基本权限控制 如何来修改默认的生成权限 三种特殊的权限(s,s,

[转]Linux之ACL权限

转自:http://www.2cto.com/os/201110/108736.html 引言 前面的内容中,我们讲到传统的权限仅有三种身份(owner,group,others)搭配三种权限(r,w,x)以及三种特殊的权限(SUID,SGID,SBIT),随着应用的发展,这些权限组合已不能适应现在复杂的文件系统权限控制要求. 例如,目录data的权限为:drwxr-x—,所有者与所属组均为root,在不改变所有者和所属组的前提下,要求用户yufei对该目录有完全访问权限(rwx),但又不能让其

win7的目录和vbox的共享,linux中没有权限打开

来自于 http://www.cnblogs.com/usegear/p/5120427.html win7的目录由vbox共享是个老话题.稳拿网上很多介绍. 在linux中通过文件夹不能打开,说没有权限. 解决权限: 1.sudo adduser "用户名" vboxsf 2.然后注销重新登陆即可搞定.

Linux中文件权限、用户和用户组管理

1.文件权限 2.文件和目录rwx权限说明 文件rwx权限: r  :  可读,具有读取文件内容的权限(),如果没有r,vi/vim编辑器提示无法编辑(可强制编辑),echo可以追加或重定向. w :  可写,具有修改文件内容的权限 x  :  可执行,具有执行文件的权限. 需满足:文件本身具有可执行权限:普通用户还需具有r权限:root用户只要x权限就可执行.linux中可执行文件:*.sh     *.py     *.perl等等. 目录rwx权限: r  :  可读,查看目录下面文件及子

Linux中文件权限管理

1 文件权限存在的意义系统最底层安全设定方法之一保证文件可以被可用的用户做相应操作 2 文件权限的查看ls -l file ##查看文件的属性.大小等详细信息ll file ##同上ls -d ##列出目录或文件本身,而不是目录或文件的内容ls -ld file ##组合使用,更加详细ll -d file ##同上 3.文件权限读取内容解释示例为目录文件 [1] : 文件的类型相似的参数类型 ##空文件d ##目录l ##软链接s ##socket 套接字 相当于门 一个出口或者入口b ##bl

Linux下ACL权限控制以及用sudo设置用户对命令的执行权限

ACL权限分配 1.setfacl命令设置文件权限 setfacl -m u:user1:rw root.txt setfacl -m u:user2:rwx root.txt 2.getfacl命令查看文件权限 getfacl root.txt [[email protected] ~]# getfacl text.txt  # file: text.txt # owner: root # group: root user::rw- user:wangteng:rw- group::r-- m