chown 是 linux 中修改文件或目录属主和属组的核心命令,支持单独改属主、属组或同时修改,配合 -r 可递归处理,但需谨慎使用以防误改系统文件。

chown 命令是 Linux 中修改文件或目录属主(所有者)和属组的核心工具。它不只改“主人”,还能同时调整所属用户组,权限逻辑清晰,但用错容易引发访问问题,务必理解参数含义再操作。
基本语法与常用格式
chown 的核心结构是:
chown [选项] [新属主][:新属组] 文件或目录
- 只改属主:
chown alice file.txt - 只改属组(注意冒号前空):
chown :developers dir/ - 同时改属主和属组:
chown alice:developers file.txt - 仅改属组(等价写法):
chown .developers file.txt(点号替代冒号,部分系统支持)
递归修改目录及子内容
对目录使用 -R(大写 R)选项可递归处理其下所有文件和子目录:
-
chown -R bob:webgroup /var/www/html/—— 把整个网站目录归属权交给用户 bob 和组 webgroup - 慎用
-R:若目标目录含大量文件或权限敏感(如 /etc、/usr),建议先用ls -l确认范围,避免误改系统关键文件 - 配合
--verbose可逐个显示变更项:chown -Rv alice:users ~/docs/
保留时间戳与特殊场景处理
默认 chown 会更新文件的 ctime(状态变更时间),但不影响 atime/mtime。如需最小化干扰,注意以下几点:
- 普通用户只能修改自己拥有的文件属主(且目标必须是自身),不能随意转给他人;只有 root 或具备 CAP_CHOWN 能力的进程才能任意更改属主
- 修改符号链接本身归属权,需加 -h 选项:
chown -h user:group linkname;否则默认修改的是链接指向的目标文件 - 批量处理时可用 find 配合 exec:
find /tmp -name "*.log" -user olduser -exec chown newuser:newgroup {} \;
验证修改是否生效
执行后务必检查结果,避免权限失效:
- 用
ls -l filename查看输出中第 3 列(属主)、第 4 列(属组)是否已更新 - 对目录,建议加
-d查看目录自身权限:ls -ld dirname - 若发现属主显示为数字(如
1001),说明该 UID 在 /etc/passwd 中无对应用户名,需确认用户是否存在或是否误删账号










