Linux 修改文件权限方法总结

2025-05-29

在 Linux 中,权限控制是保障系统安全的基础。通过 chmodchownchgrp 等命令,用户可以对文件和目录进行精细的读、写、执行控制。


🧩 一、基础概念

每个文件或目录都属于:

  • 一个用户(user)

  • 一个用户组(group)

并分别对三类对象设定权限:

  • u:用户(user)

  • g:用户组(group)

  • o:其他人(others)

  • a:所有人(all,等同于 ugo

三种权限类型:

  • r:读(read)

  • w:写(write)

  • x:执行(execute)


🛠️ 二、chmod 修改权限

1. 数字方式(最常用)

格式:

chmod [权限数字] [文件或目录]

权限数字说明(r=4, w=2, x=1):

类别

权限设置

数字含义

权限组合

所有权限

rwx

7

读+写+执行

常用权限

rw-

6

读+写

常用权限

r--

4

只读

常用权限

r-x

5

读+执行

示例:

chmod 755 script.sh       # u=rwx, g=rx, o=rx(常用于脚本/目录)
chmod 644 readme.txt      # u=rw, g=r, o=r(常用于文本文件)
chmod 777 /tmp/test.log   # 所有人可读写执行(极开放,仅限测试)

2. 符号方式(适合增删权限)

格式:

chmod [ugoa][+|-|=][rwx] [文件]

示例:

chmod u+x run.sh      # 给文件拥有者增加执行权限
chmod g-w data.log    # 移除群组的写权限
chmod o=r index.html  # 设置其他人只读
chmod a+rx public/    # 所有人可读可执行(对目录常用

🔁 三、递归修改权限(目录及子内容)

加上 -R 参数,可以对整个目录树递归操作:

chmod -R 755 /var/www/html

👤 四、chown 修改文件拥有者

格式:

chown [新用户]:[新用户组] [文件]

示例:

chown root:root file.conf
chown -R 1000:1000 /data/es_data   # 修改整个目录拥有者为 UID 为 1000 的用户(Docker 常见)

👥 五、chgrp 修改文件所属组

格式:

chgrp [选项] <用户组> <文件或目录>

<用户组>:目标 group 名称(也可以使用 group 的 GID)

<文件或目录>:要修改所属组的对象

示例:

chgrp www-data /var/www/index.html  #将 index.html 的所属用户组改为 www-data。

⚠️ 六、安全建议

场景

推荐权限设置

脚本文件 .sh

chmod 755

网站目录 html/

chmod -R 755

文本/配置文件 .conf

chmod 644

私有密钥 id_rsa

chmod 600

Docker 挂载数据目录

chown -R 1000:1000,或 chmod -R 775


🧪 七、常见检查命令

ls -l        # 查看权限
stat file    # 查看详细状态(含属主/属组)

✅ 总结

命令

作用

chmod

修改权限(可递归)

chown

修改文件属主和属组

chgrp

修改文件所属用户组

掌握这些命令可以在系统管理、开发部署、Docker 使用中灵活处理权限问题。

PREV
在 Ubuntu 中创建 Python 虚拟环境的完整指南
NEXT
SSH Key 使用总结:更安全、更高效的 Git 认证方式