Linux修改文件所属用户和组chown chgrp命令 Linux
前言
网站程序报 Permission denied,经常是文件属主不对:文件归 root,而 nginx/php-fpm 以 www 用户运行,自然读不到。chown 改属主、chgrp 改组,是修复这类问题的核心命令。本文讲解改属主、改组、同时改、递归批量和常见写法。
操作步骤
1. 查看文件当前属主
ls -l index.php
第 3、4 列是属主和属组。
2. 修改文件属主
sudo chown www index.php
3. 修改属主和属组(一起写)
sudo chown www:www index.php
4. 单独改组
sudo chgrp www index.php
5. 递归修改整个目录
sudo chown -R www:www /var/www/html
6. 只改目录不改文件,或只改文件
sudo chown -R --no-dereference www:www /var/www/html
7. 对照属主核对
ls -ld /var/www/html
常见坑
- 漏了 -R,只改单个文件,目录内子文件仍属主错误。
- -R 对软链接会跟随到目标,用 -h 避免误改。
- 属主写成系统不存在的用户,命令报错。
- Web 目录权限应属运行用户,别全给 root 或 777。
- chown 后还要看读/写/执行位,属主对了权限仍可能不足。
- 数据库文件属主和 MySQL 运行用户不一致会启动失败。
- 生产批量 chown -R 前先小范围测试,防止改错归属。
总结
chown 用户:组 文件 同时改属主属组,chgrp 只改组,-R 递归目录。Web 权限问题先 ls -l 看属主,再把文件改成运行用户。递归操作前确认路径,软链接加 -h,改完逐项核对。
遇到问题加QQ23979811 协助处理