Linux权限基础
-
权限组成
- 用户(User):文件/目录的所有者(创建者)
- 组(Group):共享权限的用户集合
- 其他(Others):除所有者和组外的用户
- 权限类型:
r
(读):查看文件内容/目录列表w
(写):修改文件/增删目录内容x
(执行):运行程序/进入目录
-
查看权限
命令ls -l
输出示例:-rw-r--r-- 1 user1 dev_team 1024 Jan 1 10:00 report.txt
- 首段
-rw-r--r--
:- 第1位:表示文件,
d
表示目录 - 后9位:三组
rwx
(分别对应用户/组/其他)
- 第1位:表示文件,
- 首段
修改权限的三种方法
chmod:修改文件/目录权限
-
符号模式(直观)
语法:chmod [角色][操作][权限] 文件名
- 角色:
u
(用户),g
(组),o
(其他),a
(所有) - 操作:(添加), (移除), (设定)
- 权限:
r
,w
,x
示例:chmod u+x script.sh # 给所有者添加执行权限 chmod go-w file.txt # 移除组和其他用户的写权限 chmod a=rw config.cfg # 所有用户设为读写权限
- 角色:
-
数字模式(高效)
权限值:r=4
,w=2
,x=1
,按位相加
示例:chmod 755 backup.sh # 用户:rwx(7),组和其他:rx(5) chmod 640 secret.txt # 用户:rw(6),组:r(4),其他:无权限(0)
chown:修改所有者/组
- 语法:
chown [新所有者]:[新组] 文件名
示例:chown user2 report.log # 更改文件所有者为user2 chown user3:admins /data # 同时更改所有者和组 sudo chown -R www:www /var/www # -R递归修改目录下所有文件
⚠️ 需
sudo
权限执行
chgrp:修改所属组
- 语法:
chgrp [新组名] 文件名
示例:chgrp developers app.py
高级权限管理
-
特殊权限
- SUID(
4
):用户以文件所有者身份执行chmod 4755 /usr/bin/custom_tool
- SGID(
2
):目录中新文件继承组权限chmod 2775 /shared_dir
- Sticky Bit(
1
):仅文件所有者可删除(如/tmp
)chmod 1777 /public_upload
- SUID(
-
ACL(访问控制列表)
为特定用户/组定制权限(需安装acl
包):setfacl -m u:guest:rwx project/ # 给guest用户rwx权限 setfacl -m g:contractors:r-x project/ getfacl project/ # 查看ACL权限
安全最佳实践
-
最小权限原则
- 避免使用
chmod 777
(所有用户可读写执行) - 目录权限推荐
755
,敏感文件设为600
(仅所有者读写)
- 避免使用
-
关键操作规范
- 使用
sudo
临时提权而非长期使用root账户 - 通过用户组管理权限(如创建
dev_team
组分配项目权限) - 定期审计权限:
find / -perm -4000
检查SUID文件
- 使用
-
权限继承示例
创建共享目录步骤:sudo mkdir /team_data sudo chown admin:team_group /team_data sudo chmod 2770 /team_data # SGID确保新文件继承组权限 sudo usermod -aG team_group user1 # 将用户加入组
Linux权限管理依赖三大命令:
chmod
控制读写执行chown
调整所有者chgrp
修改所属组
始终遵循最小权限原则,结合ACL满足复杂场景需求,错误的权限配置可能导致数据泄露或系统瘫痪,操作前务必验证命令准确性。
引用说明基于Linux官方文档(kernel.org/docs)、Filesystem Hierarchy Standard(FHS 3.0)及《Linux Administration Handbook》权威指南的技术标准,权限管理实践符合CIS Linux安全基准要求。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/8037.html