本文深入解析Linux文件权限系统,详细讲解chmod和chown命令的使用方法,包括权限表示法、用户组管理、递归修改等实战技巧,帮助管理员精准控制文件访问权限,提升系统安全性。
一、Linux文件权限基础
Linux作为多用户操作系统,通过精密的权限机制保护文件安全。每个文件/目录都有三组权限:
-rwxr-xr-- 1 user group 4096 Jan 10 10:20 example.txt
权限位分解:
- 第1位:文件类型(-普通文件,d目录,l链接)
- 2-4位:所有者(owner)权限
- 5-7位:所属组(group)权限
- 8-10位:其他用户(other)权限
二、chmod命令详解
1. 符号模式修改权限
chmod u+x file.sh 给所有者添加执行权限
chmod g-w file.txt 移除组写权限
chmod o=r-- data.conf 设置其他用户只读
chmod a+x script.sh 给所有用户添加执行权限
2. 数字模式(八进制)
权限 | 数值 |
---|---|
r– | 4 |
-w- | 2 |
–x | 1 |
常用组合:
chmod 755 script.sh rwxr-xr-x
chmod 644 config.ini rw-r--r--
chmod 600 id_rsa 仅所有者可读写
3. 递归修改目录权限
chmod -R 750 /var/www 递归修改目录及内容
三、chown命令深度解析
1. 修改文件所有者
chown user1 file.txt 修改所有者
chown :developers project/ 修改所属组
chown user1:dev team.doc 同时修改所有者和组
2. 递归修改目录归属
chown -R apache:apache /var/www/
3. 特殊场景处理
chown --reference=model.txt newfile.txt 参考文件权限
四、高级权限管理
1. 特殊权限位
- SUID(4):执行时临时获取所有者权限
- SGID(2):目录中新文件继承组ID
- Sticky Bit(1):仅文件所有者可删除
chmod 4755 /usr/bin/passwd 设置SUID
chmod 2770 /shared 设置SGID
chmod 1777 /tmp 设置Sticky Bit
2. 默认权限控制
umask 0022 新建文件默认权限644,目录755
五、实战案例
Web服务器配置:
设置网站目录权限
chown -R www-data:www-data /var/www
find /var/www -type d -exec chmod 750 {} ;
find /var/www -type f -exec chmod 640 {} ;
共享目录配置:
mkdir /shared
chown root:team /shared
chmod 2770 /shared 启用SGID保证文件继承组权限
掌握Linux权限系统是系统管理员的基本功,合理配置权限能有效平衡安全性与便利性。建议定期使用ls -l
检查关键文件权限,并通过auditd
等工具监控权限变更。
评论