当前位置:首页>Linux>Linux chown命令实战:从入门到生产场景全覆盖

Linux chown命令实战:从入门到生产场景全覆盖

  • 2026-09-06 23:05:45
Linux chown命令实战:从入门到生产场景全覆盖

前面文章介绍了linux中修改权限的chmod命令,在linux的多用户环境中,文件归属权是权限安全的基石。谁能读写、谁能管理、服务能否正常运行,往往都由归属权决定。chown(change owner)就是专门用来修改文件 / 目录的所有者与所属组的核心命令,也是运维、开发、后端同学必须熟练掌握的高频指令。

一、先搞懂:谁能改?改什么?

1. 作用

  • 修改文件 / 目录的所有者(User)
  • 修改文件 / 目录的所属组(Group)
  • 可单独改所有者、单独改组、同时改两者

2. 权限要求

  • 普通用户:组必须是自己的附属附加组,不能随意改成任意组
  • 变更所有者必须用root或sudo提权
3. 快速查看归属
#ls -l 文件名/目录名ls -l
如上图中第3列root=所有者,第4列root=所属组。
二、chown的基础语法
#标准格式chown [选项] 所有者:所属组 文件/目录#兼容格式(点号替代冒号)chown [选项] 所有者.所属组 文件/目录
高频选项
  • -R:递归修改目录及所有子文件 / 子目录(最常用)
  • -v:显示详细执行过程
  • -c:只显示发生变更的内容
  • -f:忽略错误信息,静默执行
三、运维实战案例
案例 1:只改文件所有者
#将test.txt所有者改为alice(非root用户需sudo)chown alice test.txt
案例 2:只改所属组(所有者不变)
#方式1:chown写法chown :dev test.txt#方式2:等价chgrp命令chgrp dev test.txt
案例 3:同时改所有者和所属组
#将 test.txt 归属改为 alice:devchown alice:dev test.txt
案例 4:递归修改目录
#将/var/www/mysite及其所有内容归属改为 alice:dev  chown -R alice:dev /var/www/mysite
案例 5:用UID/GID数字修改
#先查UID/GIDid alice#直接用ID赋值chown 1001:1002 test.txt
案例 6:参照已有文件设置归属
#将file2的归属改为和file1一致chown --reference=file1 file2chown --reference=test.txt test1.txt
四、生产环境高频场景
场景 1:Web服务器(Nginx/Apache)
#站点目录归属web服务用户chown -R www-data:www-data /var/www/wordpress#配置文件安全归属rootchown root:root /etc/nginx/conf.d/mysite.conf
场景 2:数据库目录(MySQL/PostgreSQL)
chown -R mysql:mysql /var/lib/mysqlchown -R postgres:postgres /var/lib/postgresql
场景 3:用户家目录修复
#误操作后,把/home/alice归还用户 jackchown -R alice:alice /home/alice
场景 4:共享目录权限
#项目目录归dev组,所有组员可读写chown -R :dev /data/project#权限需要使用chmod进行修改,chown只改属组 
五、注意事项
  1. 不加 -R 只改目录本身,不改里面内容
    务必确认是否需要递归。
  2. 普通用户不能改所有者
    变更归属必须sudo。
  3. 软链接默认不递归穿透
    加 -h 可修改软链接本身,避免误改源文件。
  4. 系统关键目录别乱改
    /、/etc、/bin 等归属错误会导致系统崩溃。
  5. chown 与 chmod 分工不同
  • chown:定谁拥有
  • chmod:定能做什么
生产环境通常先 chown 再 chmod。

六、总结

chown看似简单,却是linux权限体系的基石操作。无论是部署服务、修复权限、管理共享目录,都离不开它。如果你觉得文章对你的运维工作有帮助,记得点赞加关注。

#运维#Linux运维#Linux实战#chown

最新文章

随机文章