chown 是 Linux 中用于更改文件或目录拥有者和所属组的命令,支持单独改用户、改组、同时修改,需足够权限;常用选项包括 -R(递归)、-v(详细输出)、--from(条件匹配)等。

chown 是 Linux 中用于更改文件或目录拥有者(所有者)和所属组的核心命令。它不只改“用户”,还能同时修改“用户+组”或仅改“组”。权限足够(通常是 root 或文件当前拥有者)才能执行。
基本语法与常见用法
命令格式为:
chown [选项] [拥有者][:][所属组] 文件/目录
- 只改拥有者:
chown alice file.txt→ 把 file.txt 的拥有者改为用户 alice - 只改所属组(需加冒号):
chown :developers file.txt→ 所属组改为 developers,拥有者不变 - 同时改拥有者和所属组:
chown alice:developers file.txt→ 拥有者为 alice,组为 developers - 只改拥有者、保留原组(省略冒号后内容):
chown alice: file.txt→ 注意末尾的冒号,等价于chown alice:$(stat -c '%G' file.txt) file.txt
递归修改目录及内部所有内容
对目录使用 -R(递归)选项,可批量更新其下所有文件和子目录的归属:
-
chown -R bob:web /var/www/html→ 把 /var/www/html 及其全部内容的拥有者设为 bob、所属组设为 web - 谨慎使用:递归操作影响范围大,建议先用
ls -lR /path查看当前归属,或加 -v(verbose)选项观察每一步变更:chown -Rv alice:users docs/
用数字 UID/GID 替代用户名或组名
当用户或组尚未创建、或脚本中需避免名称解析时,可直接用 ID:
-
chown 1001:1002 myfile→ UID 1001,GID 1002 - 查 UID/GID:用
id alice或getent passwd alice、getent group developers - 注意:UID/GID 必须真实存在,否则 chown 会报错(如 “invalid user”)
其他实用选项
-
--from=旧用户:旧组:仅当当前归属匹配时才修改,适合精准替换。
例:chown --from=:oldgroup --from=olduser: newuser:newgroup *.log -
-c(change):仅在实际发生变更时输出信息,比
-v更安静 - 普通用户只能把自己的文件改给自己的组(需该组是其附属组之一),不能随意改给其他用户;只有 root 能任意指定拥有者


















