chown 用户名:组名 目录路径可同时修改所有者和所属组,冒号分隔且不可有空格;-r递归修改需谨慎,操作前须验证路径、用户组存在性及权限。

直接用 chown 用户名:组名 目录路径 就能同时修改目录的所有者和所属组,这是最常用也最稳妥的方式。
基本语法与关键细节
冒号(:)是分隔所有者和所属组的唯一合法符号,前后不能有空格;用户名和组名都必须真实存在于系统中:
-
chown alice:developers /var/www—— 把目录所有者设为alice,所属组设为developers -
chown 1001:33 /srv/app—— 也可用 UID 和 GID 替代名称,适合用户已删或 NFS 环境 - 只写
chown alice /var/www,仅改所有者,所属组保持不变 - 只写
chown :developers /var/www,仅改所属组,所有者不变
递归修改整个目录树
目录本身修改后,其内部文件、子目录、隐藏文件(如 .env、.git)默认不受影响。要一并更新,必须加 -R 选项:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
sudo chown -R www-data:www-data /var/www/html—— Web 部署常见操作 -
sudo chown -R 1001:33 /srv/app—— 使用数字 ID 更稳定,避免用户名变动导致归属失效
操作前必须验证的三件事
递归修改不可逆,尤其在生产环境,跳过验证容易导致服务中断:
- 确认路径准确:优先用绝对路径,避免把
./data误写成/data - 确认用户和组存在:
id alice和getent group developers应有输出 - 确认你有权限:普通用户无法修改他人文件的所有者;改属组时,目标组必须是你所属的附加组之一
常见错误与规避方式
几个细节不注意,就会白忙活甚至引发故障:
- 漏掉
-R:只改了目录本身,里面文件还是旧归属,PHP 或 Nginx 常因此报 “Permission denied” - 误用点号(
.)代替冒号(:):比如user.group会被解析失败,尤其用户名含小数点时更危险 - 对系统目录乱加
-R:像/etc、/usr/bin这类路径,除非明确知道每层影响,否则不要碰 - 符号链接默认不处理目标:如需修改链接文件自身(而非它指向的内容),加
-h选项










