
用户组和权限管理
文件权限管理
三种用户:
文件所有者 u user
文件所属组 g group
其他人 o other
三种权限:
读 r read
写 w write
执行 x excute
文件权限管理命令
数字法:
chmod 777 文件名
字母法:
chmod u+r,g+r,o-x 文件名
用户和组修改的指令
chown 用户:属组 文件名
chown 用户.属组 文件名
chown tom: 文件名
chown :属组 文件名
chown 用户 文件名
chown --reference=f1 f2
chown -R tomcat:tomcat dir/
所属组修改
chgrp -R 组名 文件名
umask
超管:
默认文件的权限:644
默认文件夹的权限:755
普通用户:
默认文件的权限:664
默认文件夹的权限:775
useradd
普通用户家目录:/home
超管的家目录:/root
用户相关的配置文件
/etc/passwd 7列信息
/etc/shadow
/etc/group
/etc/gshadow
getent passwd
查看文本工具
cat
nl
tail -f
head
less
more
用户不能登录Shell
创建用户mary和 harry,要求harry的uid为3000,shell设置为不可登陆shell
不能登录:
/bin/false
/sbin/nologin
useradd mary
useradd -u 3000 -s /bin/false -c "测试用户" harry
文件权限管理
1.设置文件所有者 shown
chown OWNER:GROUP #同时修改所有者和属组
chown -R #递归
2.设置文件的属组信息 chgrp
chgrp --reference=RFILE #按照指定文件的的属性,来修改目标文件属性
chgrp -R #递归
3.修改文件权限
修改文件权限chmod
4.新建文件目录权限控制umask
umask -p 查看umask数值
umask -S 按照字母表达式显示
永久设置:写入配置文件
/etc/bashrc
~/.bashrc
Linux文件特殊权限
SGID u+s
方法一:chmod u+s 文件
方法二:chmod 4644 文件
suid权限与执行权限位共用, 执行权限位出现小写s表示文件属主有执行权限, 大写S表示文件文件属主没有执行权限
SGID g+s
方法一: chmod g+s 文件
方法二: chmod 2644 文件
guid权限与属组执行权限位共用, 执行权限位出现小写s表示文件属组有执行权限, 大写S表示文件文件属组没有执行权限
Sticky o+t
方法一: chmod o+t 文件
方法二: chmod 1644 文件
sticky权限与其他用户执行权限位共用, 执行权限位出现小写s表示文件其他用户有执行权限, 大写T表示文件其他用户没有执行权限
隐藏权限 chattr +i & +a
chattr +i root用户和所有用户不能删除,移动,重命名文件,修改文件内容
chatrr +a 只能追加内容, 不能删除,移动,重命名文件
sattr [文件名] 查看隐藏权限
ACL权限
格式: setfacl -m [u/g]:user:[rwx] 文件
setfacl -m
# 设定 ACL 权限
setfacl -x
# 删除指定用户或用户组权限
setfacl -b
#删除所有的 ACL 权限
- setfacl -b /project 表示删除有关 project 目录的所有 ACL 权限
setfacl -R
- 递归设定 ACL 权限,指设定的 ACL 权限会对目录下的所有子文件生效
- 命令格式为 "setfacl -m u:用户名:权限 -R 文件名"(群组使用 g:群组名:权限)
getfacl 查看ACL权限
#设置文件acl权限
# setfacl -m u:test:rw file1.txt
#权限位后面多了一个"+",表示此文件拥有ACL权限
#查看文件acl权限
# getfacl 【文件名】
#删除tom用户ACL权限
setfacl -x u:xuan file1.txt
#对用户组设置ACL权限
setfacl -m g:admins:rwx file1.txt
#后面创建的用户都拥有此权限
setfacl -m d:u:admins:rwx file1.txt
#清空文件所有用户ACL权限
setfacl -b file1.txt
#复制file1的acl权限给file2
getfacl file1 | setfacl --set-file=- file2
-a 显示文件的ACL
-d 显示默认的ACL
-c 不显示注释标题
-e 显示所有的有效权限
-E 显示没有的有效权限
-R 递归到子目录
mask权限
#1. 一旦设置了ACL权限,就会产生一个mask权限代替group所属组权限
[root@centos7 /data ]# setfacl -b file1.txt
[root@centos7 /data ]# setfacl -m u:xuan:rw file1.txt
[root@centos7 /data ]# chmod g=rw file1.txt
[root@centos7 /data ]# getfacl file1.txt
#2. 一旦setfacl对其他用户设置权限大于mask权限,mask权限会自动抬高权限
[root@centos7 /data ]# setfacl -m g:admins:rwx file1.txt
[root@centos7 /data ]# getfacl file1.txt
# file: file1.txt
# owner: root
# group: root
#3. 一旦修改了文件所属组权限,或者setfacl修改了mask权限; 除了文件属主用户权限和其他用户other权限不变以外,自定义用户和自定义组的ACL权限会被下降至mask相同权限
[root@centos7 /data ]# setfacl -m mask::r file1.txt
[root@centos7 /data ]# getfacl file1.txt
ACL备份还原
#备份 ACL
getfacl -R /tmp/dir > acl.txt
#消除 ACL权限
setfacl -R -b /tmp/dir
#还原 ACL权限,注意按照文件最后一个ACL权限进行还原
setfacl -R --set-file=acl.txt /tmp/dir
#还原 ACL权限
setfacl --restore acl.txt
#查看 ACL权限
getfacl -R /tmp/dir
小结
ACL:
权限更加灵活的管理。
setfacl:
useradd demo wx
useradd g1 rx
mkdir /data
setfacl -m u:demo:wx /data
setfacl -x u:demo /data
setfacl -m g:g1:rx /data
setfacl -m d:u:test:rwx /data
setfacl -m mask::rw /data
getfacl:
getfacl -c /data
权限备份:
getfacl -c /data > databak.acl
setfacl -b /data
setfata --set-file=databak.acl /data
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 梦缘羲
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果