Linux权限管理完全指南:从基础到实战

一、Linux权限的核心概念

1. 权限的作用

Linux通过 读(r)写(w)执行(x) 三种基础权限,控制用户和进程对资源的访问,确保系统安全和数据隔离。

  • 读(r):查看文件内容(如 cat)、列出目录内容(如 ls)。

  • 写(w):修改文件内容、在目录中创建/删除文件。

  • 执行(x):运行脚本/程序(文件)、进入目录(目录必备)。

关键区别:目录的执行权限(x)是进入目录的前提,即使有读权限(r)但无执行权限,也无法查看目录内容!


二、权限的表示方式

1. 字母形式

通过 ls -l 查看文件权限:

-rwxr-xr-- 1 user group 1024 Jan 5 09:30 script.sh  
drwxr-x--- 2 root backup 4096 Jan 5 10:00 /backups  
  • 首字符:文件类型(- 普通文件,d 目录,l 符号链接)。

  • 权限九宫格

    • 属主(u):文件所有者的权限(前三位)。

    • 属组(g):同组用户的权限(中间三位)。

    • 其他用户(o):非所有者且非组成员的权限(后三位)。

2. 数字形式

权限转换为数字:

  • r=4w=2x=1,无权限为 0

  • 组合示例:

    • rwx = 4+2+1 = 7

    • rw- = 4+2 = 6

    • r-- = 4 = 4


三、权限设置命令 chmod

1. 字母方式设置

chmod [用户类型][操作符][权限] 文件/目录  
  • 用户类型u(属主)、g(属组)、o(其他)、a(所有人)。

  • 操作符+(添加)、-(删除)、=(覆盖)。

示例

chmod u+x script.sh      # 属主添加执行权限  
chmod go-w data/         # 属组和其他用户去除写权限  
chmod a=rwx public_dir/  # 所有人赋予全部权限  

2. 数字方式设置

chmod 764 file.txt  
  • 解释

    • 属主(7=rwx)、属组(6=rw)、其他用户(4=r)。

常用权限组合

  • 755:目录标准权限(属主rwx,其他用户rx)。

  • 644:文件标准权限(属主rw,其他用户r)。

  • 600:敏感文件(仅属主可读写)。


四、实战场景与案例

1. Web服务器目录安全

chmod 755 /var/www/html      # 目录可读可进入,但禁止普通用户修改  
chmod 644 /var/www/html/*.html  # 静态文件只允许属主修改  

2. 保护敏感文件

chmod 600 ~/.ssh/id_rsa      # SSH私钥仅属主可读写  
chmod 640 /etc/mysql/my.cnf  # 数据库配置:属主可读写,属组可读  

3. 团队协作目录

chmod 770 /team_projects     # 属主和属组可读写执行,其他用户无权限  

五、常见错误与解决方案

1. 灾难性权限:777

chmod 777 /var/www/html      # 任何人都可修改,易被植入恶意脚本  

修复

chmod 755 /var/www/html      # 恢复目录权限  
find /var/www/html -type f -exec chmod 644 {} \;  # 文件设为只读  

2. 目录无法访问

chmod 644 /data/backup       # 目录无执行权限,无法进入  

表现cd /data/backup 提示 Permission denied
修复

chmod 755 /data/backup       # 添加执行权限  

3. 删除文件权限误区

权限规则:删除文件需对所在目录有写权限(w),而非文件本身!

chmod +w /home/shared/       # 允许用户删除目录内文件  

六、特殊权限与root用户

1. root用户的特权

  • 无视权限限制:root用户可访问和修改任何文件(即使权限为000)。

  • 安全建议:避免直接使用root操作,改用 sudo 提权。

2. 粘滞位(Sticky Bit)

作用:防止用户删除他人文件(常用于 /tmp 目录)。

chmod +t /tmp                # 设置粘滞位  
ls -ld /tmp                  # 显示权限末尾的 `t`(如 drwxrwxrwt)  

七、练习题与答案

1. 设置目录权限

需求:目录 /root/shop,属主拥有全部权限,属组可读和执行,其他用户无权限。

chmod 750 /root/shop  

2. 保护隐私文件

需求:文件 /root/email.doc 仅属主可读写。

chmod 600 /root/email.doc  

3. 修复错误权限

错误:网站目录权限为 777,导致安全漏洞。
修复

chmod 755 /var/www/html  
find /var/www/html -type f -exec chmod 644 {} \;  

总结

合理设置权限是Linux系统安全的基石。掌握 chmod 命令的字母和数字用法,理解目录与文件权限的区别,避免常见错误(如 777),能有效保护数据和服务安全。记住:最小权限原则是运维的核心准则!

附:权限速查表

场景推荐权限命令示例
个人敏感文件600chmod 600 ~/.ssh/id_rsa
团队共享目录770chmod 770 /team_projects
Web服务器根目录755chmod 755 /var/www/html
日志文件644chmod 644 /var/log/nginx/*.log
临时目录(粘滞位)1777chmod 1777 /tmp
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬码红绿灯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值