038 chown命令

命令说明

chown(change owner)用于修改文件或目录的所有者和所属组,只有 root 或具备 CAP_CHOWN 权限的进程才能把文件改属他人,是管理多用户共享目录归属的常用命令。

语法

chown [选项]... [所有者][:.][组] 文件...

常用参数

参数说明
-R递归修改目录树下所有文件的属主/属组
-h只改符号链接本身而不跟随目标
-c只报告发生变化的文件
-v详细报告每个文件的处理结果
-f静默忽略错误
--reference=文件参照文件设置相同属主属组
--from=旧属主只修改当前属主匹配的文件,防止误改
user:group同时指定所有者与组(冒号写法优于点号)

使用示例

$ chown www /var/www/html/index.html

把文件所有者改为 www 用户

$ chown www:www /var/www/html

同时改所有者和所属组

$ chown -R appuser:appgroup /opt/app

递归改整个应用目录归属(部署后常用)

$ chown :developers project/

只改所属组不动所有者

$ chown --reference=/etc/passwd /etc/shadow

参照 passwd 设置属主属组

$ chown -h root:root mylink

改符号链接自身的归属

$ chown -R --from=olduser newuser /data

只把原属主为 olduser 的文件改为 newuser

$ chown root:shadow /etc/shadow && chmod 640 /etc/shadow

shadow 文件标准属主与权限组合

实用技巧

  • chown 改归属、chmod 改权限、chgrp 只改组;三者常配合使用,Web 目录典型组合是 chown -R www:www + chmod -R 755 目录 / 644 文件。
  • 分隔符推荐用冒号 user:group;user.group 写法在用户名含点时会产生歧义。
  • 改属主后原用户可能失去访问意义,脚本中改 /var/www、/opt 等目录前先用 ls -l 确认当前归属。
  • 普通用户不能把自己的文件 chown 给别人(防配额与责任逃避),只能 chgrp 到自己加入的组。
  • Web 服务上传目录被误改属主导致 500 错误时,可用 chown --from 精准回滚,避免大范围 -R 误伤。