上一篇 下一篇 分享链接 返回 返回顶部

Linux文件权限管理入门:chmod/chown命令详解与实践

发布人:灰大王 发布时间:2025-03-23 15:52 阅读量:56

一、Linux文件权限基础

Linux系统中,每个文件和目录都有三组权限控制:

所有者(Owner):文件创建者或拥有者

所属组(Group):文件关联的用户组

其他用户(Others):系统其他所有用户

权限类型分为三种:

r(读):查看文件内容/列出目录内容

w(写):修改文件/创建/删除目录内文件

x(执行):运行程序/进入目录

权限示例:-rwxr-xr--

第一位 - 表示普通文件(d为目录,l为链接)

后续三组分别对应所有者、组、其他用户的权限

二、chmod命令:修改文件权限

1. 数字模式(推荐)

权限对应数字:

r=4

w=2

x=1

无权限=0

组合方式:将三者相加
示例:

chmod 755 file.txt  # 所有者:rwx(7),组:r-x(5),其他:r-x(5)
chmod 644 dir/      # 所有者:rw-,组:r--,其他:r--

2. 符号模式

操作符:

+ 添加权限

- 移除权限

= 设置绝对权限

示例:

chmod u+x script.sh    # 给所有者添加执行权限
chmod go-w file.conf  # 移除组和其他用户的写权限
chmod a=rw shared.log # 所有用户设为读写权限

3. 递归修改目录权限

 
chmod -R 755 /var/www  # 递归修改目录及其内容权限

三、chown命令:修改文件所有者

1. 基础语法

chown [用户]:[] 文件名

示例:

chown root:admin server.cfg  # 修改所有者和组
chown jenkins /opt/build     # 仅修改所有者
chown -R www-data:www-data /var/www  # 递归修改

2. 特殊用法

: 可替换为 .(某些系统兼容写法)

仅修改组:chown :developers app/

四、777权限:风险与正确使用场景

高风险行为

 
chmod 777 /etc/passwd    # 灾难性操作!
chmod -R 777 /var/log/   # 可能导致日志篡改

风险说明

所有用户可随意修改/删除文件

恶意用户可植入后门程序

系统关键文件暴露导致提权攻击

适用场景(临时方案)

本地开发调试:快速解决权限冲突问题

容器内临时目录:非持久化数据存储

封闭内网环境:短期共享测试文件

FTP匿名上传目录:需配合其他隔离措施

替代方案

精细化权限:chmod 750(所有者rwx,组r-x)

使用ACL扩展权限:setfacl -m u:user:rwx file

创建专用用户组管理共享资源

五、实践案例

案例1:Web服务器目录配置

# 修改所有者
sudo chown -R www-data:www-data /var/www/html

# 设置安全权限
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;

案例2:共享协作目录

# 创建共享组
sudo groupadd project-team

# 设置目录权限
sudo chown :project-team /shared
sudo chmod 2770 /shared   # SGID保持组权限继承

六、安全建议

最小权限原则:仅授予必要权限

慎用递归操作:避免误改系统文件

定期审计权限ls -lR /critical/path > audit.log

结合SELinux/AppArmor:增强访问控制

备份重要文件chattr +i critical_file(防止误删)

通过合理使用chmodchown命令,您可以有效管理系统资源访问权限。记住:777权限就像敞开所有门窗的保险箱——仅在可控环境下短暂使用,生产环境务必避免!

目录结构
全文