linux中chmod管权限(能不能做),chown管归属(归谁管);遇访问失败须先用ls -l查看,再针对性操作——权限与归属独立,改错命令777也无效。

Linux 文件权限和归属不是两个可互换的开关,而是两层独立控制:chmod 管“能不能做”,chown 管“归谁管”。遇到访问失败,先看 ls -l 输出,再决定动哪个命令——改错地方,777 也白搭。
怎么看当前权限和归属
执行 ls -l filename 是唯一可靠起点。输出如 -rw-r--r-- 1 alice developers 1024 May 20 14:30 config.yaml,需关注三处:
- 第一段 -rw-r--r--:共10位,第1位是类型(-文件 / d目录),后9位每3位一组,依次为所有者(u)、所属组(g)、其他用户(o)的 r/w/x 状态;
- 第三列 developers 是当前所属组。
注意:你是否属于这个组,要用 groups 命令确认,不能只看 ls -l 显示的组名。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
chmod:精准控制“能做什么”
权限本质是三类角色对三种操作的授权:读(r=4)、写(w=2)、执行(x=1)。数字模式更直观、更常用。
- 644:文件标准读写权限(所有者可读写,组和其他人仅可读),适合配置文件、网页源码;
- 755:目录或脚本常用权限(所有者全权,组和其他人可读+进入/运行),目录必须有 x 才能 cd 或 ls;
- 600:敏感文件专用(如私钥、.env),仅所有者可读写,其他人完全无权;
- 慎用 -R 递归:chmod -R 755 dir/ 会把 .txt 文件也设成可执行,应分开处理:
find dir/ -type d -exec chmod 755 {} \;find dir/ -type f -exec chmod 644 {} \;
chown:明确“归谁管”
归属不正,chmod 再怎么调也没用。普通用户只能改自己拥有的文件;改他人文件必须加 sudo,且目标用户/组必须真实存在(id username 可验证)。
- 只改所有者:
sudo chown bob file.txt; - 只改所属组:
sudo chown :www-data file.txt(注意冒号不能漏); - 同时改两者:
sudo chown bob:www-data /var/www/html; - 递归修改整个项目归属:
sudo chown -R deploy:webgroup /opt/myapp。
典型场景:Web 部署权限协同
让 Nginx 能读静态资源,开发者能改代码,但不能互相越权:
- 把网站根目录归属设为
www-data:developers:sudo chown -R www-data:developers /var/www/html; - 目录设为 750(所有者全权,组可读+进入,其他人无权);
- 普通文件设为 640(所有者读写,组可读,其他人无权);
- 脚本文件单独加 x:
chmod u+x /var/www/html/deploy.sh。










