本文最后更新于 2025-11-10,文章内容可能已经过时。

ACL策略:为特殊的人或特殊的组,单独设置权限

Linux中判断用户具备的权限:

1.首先查看该用户或者组是否有ACL策略(ACL优先)

2.查看用户,对于该数据所处的身份,顺序所有者>所属组>其他人,原则是匹配即停止

3.查看相应身份的权限位

setfacl  -m  u:dc:rw   /111    #单独赋予dc用户权限
setfacl  -m  u:lisi:rwx  /111   #单独赋予lisi用户权限 
getfacl  /111   #查看该目录赋予的ACL策略
setfacl   -x   u:dc   /111   #清除dc用户acl策略
setfacl   -b     /111        #清除目录所有acl策略
-R:递归设置acl策略
setfacl  -Rm   u:dc:rwx   /opt/aa   #对aa目录下的文件设置acl策略
拉黑lisi用户:setfacl  -m  u:lisi:---  /111   #权限为空,即使文件所属用户为lisi也没有权限,因为acl优先级最高

管理员用户

linux创建目录默认权限是755,这个值是由777 -umask值得到的,umask值默认022,umark值可以修改(不建议更改,影响太大)修改umask 值 vim ~/.bashrc vim /home/cui/.bashrc

文件默认权限是644,默认把执行权限x去掉

普通用户umask值默认002

mkdir -m 777 /nsd77 -m无视umask值创建数据指定数据的值

用户的home目录模板在/etc/skel下,如果想要每个用户创建时家目录有指定的文件,可以添加到/etc/skel下
touch  /etc/skel/abc.txt
ls -a /etc/skel
useradd  chaoge
cd /home/chaoge/

假如不小心将用户下的home目录给删了,可以用以下方式恢复
rm -rf  /home/chaoge
cp -r  /etc/skel    /home/chaoge
chown   -R  chaoge:chaoge   /home/chaoge 
ls  -ld   /home/chaoge
当使用acl策略,使用ls  -ld 查看目录的权限会发现umask的值会代替所属组的权限
例如:
mkdir   /opt/test
chmod    000   /opt/test
setfacl   -m  u:lisi:rwx   /opt/test
ls -ld   /opt/test
结果会出现  -d   ---rwx---+  

例子:不小心将/mnt递归修改了文件权限,如何恢复
chmod  -R  000   /mnt
find   /mnt  -type  d   -exec  chmod 755 {}  \;
find   /mnt  -type  f    -exec  chmod 644 {}  \;

千万不要删根,千万不要递归修改根的权限
根目录权限555