权限问题
1、重要: r、w、x权限对文件和目录的意义:
补充:
(1)w(目录):可以创建或删除目录中任意一个空目录。如果被删除的目录不
是空目录且该目录没有w权限,则该目录无法被删除。
(2)建议权限设置:
1)目录:755(drwxr-xr-x)
2)文件:644(-rw-r--r--)
3)可执行文件:755(-rwxr-xr-x)
2、高级权限:
(1)高级权限的类型
suid 4
sgid 2
sticky 1 粘滞位
文件 目录
suid 执行的时候以所有者身份执行
sgid 继承属组
sticky 谁可以删除:root、文件的所有者、目录的所有者
(2)设置特殊权限
1)字符
chmod u+s file
#用户位的x位上设置
chmod g+s dir
#用户组位的x位上设置
chmod o+t dir
#其它用户位的x位上设置
2)数字
chmod 4755 file
chmod 2755 dir
chmod 1777 dir
(3)示例:
1)示例1:suid 普通用户通过suid提权 <针对文件>
在进程文件(二进制,可执行)上增加suid权限
[root@localhost ~]# chmod u+s /bin/cat
[root@localhost ~]# ls -l /bin/cat
-rwsr-xr-x. 1 root root 54080 4月 11 2018 /bin/cat
[alice@tianyun ~]$ cat /root/install.log
2)示例2:sticky 用户只能删除自己的文件 <针对目录>
[root@localhost ~]# mkdir /home/dir1
[root@localhost ~]# chmod 777 /home/dir1
[root@localhost ~]# chmod o+t /home/dir1
[root@localhost ~]# ll -d /home/dir1
drwxrwxrwt 2 root root 21 5月 25 23:36 /home/dir1
测试:user1在/home/dir1建立文件, user2尝试删除!
=================================================================
小知识:注意以下目录的正确权限,否则会导致程序不能正常运行
[root@wangcy ~]# ll -d /tmp /var/tmp/
drwxrwxrwt. 8 root root 105 5月 25 23:51 /tmp
drwxrwxrwt. 3 root root 18 5月 25 23:29 /var/tmp/
=================================================================
3)示例3:sgid 新建文件继承目录属组 <针对目录>
[root@localhost ~]# mkdir /home/hr
[root@localhost ~]# groupadd hr
[root@localhost ~]# chgrp hr /home/hr/
[root@localhost ~]# chmod g+s /home/hr
[root@localhost ~]# ll -d /home/hr/
drwxr-sr-x 2 root hr 33 5月 25 23:52 /home/hr/
[root@localhost ~]# touch /home/hr/file92
[root@localhost ~]# mkdir -p /home/hr/test
[root@localhost ~]# ll /home/hr/
drwxr-sr-x 2 root hr 0 5月 8 21:31 test
-rw-r--r-- 1 root hr 0 5月 26 23:53 file92
3、基本权限 ACL
(1)说明
文件权限管理之: ACL设置基本权限(r、w、x)
UGO设置基本权限: 只能一个用户,一个组和其他人
ACL 设置基本权限: r,w,x
(2)ACL基本用法
[root@localhost ~]# touch /home/test.txt
[root@localhost ~]# ll /home/test.txt
-rw-r--r-- 1 root root 0 6月 8 22:07 /home/test.txt
# 查看文件的acl
[root@localhost ~]# getfacl /home/test.txt
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
group::r--
other::r--
1)增加用户lc权限
[root@localhost ~]# setfacl -m u:lc:rwx /home/test.txt
###############################################################
#增加用户jack权限
#[root@localhost ~]# setfacl -m u:jack:- /home/test.txt
#增加其他用户权限
#[root@localhost ~]# setfacl -m o::rw /home/test.txt
#增加组用户赋权
#[root@localhost ~]# setfacl -m g:hr:r /home/test.txt
###############################################################
2)查看
[root@localhost ~]# ll /home/test.txt
-rw-rwxr--+ 1 root root 0 6月 8 22:11 /home/test.txt
[root@localhost ~]# getfacl /home/test.txt
getfacl: Removing leading '/' from absolute path names
# file: home/test.txt
# owner: root
# group: root
user::rw-
user:lc:rwx
group::r--
mask::rwx
other::r--
3)删除
#删除用户lc的acl权限
[root@localhost ~]# setfacl -x u:lc /home/test.txt
#删除所有acl权限
[root@localhost ~]# setfacl -b /home/test.txt
4)查看帮助
[root@localhost ~]# man setfacl
#复制file1的ACL权限给file2
[root@localhost ~]# getfacl file1 | setfacl --set-file=file2
(3)ACL高级用法
1)mask:
用于临时降低用户或组(除属主和其他人)的权限
建议:为了方便管理文件权限,其他人的权限置为空
[root@localhost ~]# setfacl -m m::--- /home/file100.txt
2)default: 继承(默认)
要求:希望lc能够对/home以及以后在/home下新建的文件或目录有读、写、执行权限
思路:
步骤一: 赋予lc对/home读、写、执行权限
[root@localhost ~]# setfacl -m u:lc:rwx /home
步骤二: 赋予lc对以后在/home下新建的文件或目录有读、写、执行权限 (使lc的权限继承)
[root@localhost ~]# setfacl -m d:u:lc:rwx /home
#d 表示将权限放在/home目录的 default:user:lc:rwx 上,user:lc:rwx 被下一层文件和目录所继承,如果下一层是目录,
#目录上也会显示 default:user:lc:rwx ,然后以此类推的继承下去
说明:可用 -R 进行递归操作赋权
setfacl -R -x u:lc /home
#表示清除/home目录以及/home目录下所有文件和目录的 user:lc:rwx 的 acl 权限
setfacl -R -x d:u:lc /home
#表示清除/home目录以及/home目录下所有文件夹上默认继承给下层的 default:user:lc:rwx 的acl权限
setfacl -R -b /tools
#表示清除tools目录下所有文件和目录的上有关acl权限的所有设置
示例:
[root@centos7 ~]# getfacl /home/
getfacl: Removing leading '/' from absolute path names
# file: home/
# owner: root
# group: root
user::rwx
user:lc:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:lc:rwx
default:group::r-x
default:mask::rwx
default:other::r-x
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏