Linux文件权限管理核心是chmod改“谁能做什么”、chown改“谁拥有文件”:chmod用数字法(如644)或符号法(如u+x)设置读写执行权限,chown用“用户:组”格式修改归属,系统级操作需sudo,ls -l可实时验证。

Linux 文件权限修改其实不难,关键搞懂 chmod 改“谁能做什么”,chown 改“谁拥有这个文件”。记牢这两个命令,90% 的权限问题都能自己搞定。
chmod:改文件的读、写、执行权限
权限分三组:所有者(user)、所属组(group)、其他人(others),每组都有 r(读)、w(写)、x(执行)三种权限。比如 -rw-r--r-- 表示:所有者可读写,组和其他人只能读。
- 用数字法最直观:r=4,w=2,x=1,加起来就是权限值。例如
chmod 644 file.txt→ 所有者读写(4+2=6),组和其他人只读(4) - 常用组合:
755(目录/可执行脚本)、644(普通文件)、600(私密文件,如密钥) - 也可以用符号法微调:
chmod u+x script.sh给所有者加执行权限;chmod go-w config.conf去掉组和其他人的写权限
chown:改文件的所有者和所属组
格式是 chown [用户][:组] 文件,冒号前后都可省略,但顺序不能错。
- 只改所有者:
chown alice file.log - 只改组:
chown :developers project/(注意冒号前空) - 同时改两者:
chown alice:developers file.txt - 递归修改整个目录:
chown -R bob:web /var/www/html(-R 很关键,不然只改目录本身)
哪些情况必须用 sudo?
你只能修改自己拥有的文件权限;想改别人(比如 root)的文件,或把文件转给其他用户,就得加 sudo。
-
sudo chmod 755 /usr/local/bin/mytool(改系统级可执行文件) -
sudo chown root:wheel /etc/nginx/nginx.conf(改配置文件归属) - 没权限时别硬试,先看报错提示——通常会说 “Operation not permitted” 或 “Permission denied”
小技巧:快速确认当前权限
用 ls -l 看最清楚。输出第一列像 -rwxr-xr-- 就是权限,第三、四列分别是所有者和组名。
- 想批量处理?配合 find:比如找所有 .sh 文件并加执行权限:
find . -name "*.sh" -exec chmod +x {} \; - 不确定改对没?改完立刻
ls -l 文件名对比下 - 误操作了?只要没删文件,权限随时能改回来,不用慌
基本上就这些。不复杂但容易忽略细节——记住:chmod 管“能不能做”,chown 管“是谁的”,用对场景,权限问题就稳了一大半。










