Linux chown 命令
Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。
Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。
chown 需要超级用户 root 的权限才能执行此命令,非超级用户如需要设置关联组可能需要使用 chgrp 命令。
使用权限 : root
语法
chown [选项] 所有者[:组] 文件... chown [选项] --reference=参考文件 文件...
选项 :
- -R, --recursive: 递归更改目录及其子目录中所有文件的所有者
- -v, --verbose: 显示详细操作信息
- -c, --changes: 只显示实际发生更改的文件
- -f, --silent, --quiet: 抑制错误信息
- --reference=文件: 使用参考文件的所有者和组设置
- -h, --no-dereference: 影响符号链接本身,而不是链接指向的文件
- --from=当前所有者: 只有当前所有者匹配时才更改
基本使用格式
1. 只更改所有者
chown username filename chown john file.txt
2. 同时更改所有者和组
chown username:groupname filename chown john:developers script.sh
3. 只更改组(所有者前留空)
chown :groupname filename chown :staff document.txt
4. 使用数字ID
chown 1000:1000 filename # 用户ID 1000,组ID 1000 chown 1001 filename # 只更改用户ID
实例
把 /var/run/httpd.pid 的所有者设置 root:
chown root /var/run/httpd.pid
将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :
chown runoob:runoobgroup file1.txt
将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chown -R runoob:runoobgroup *
把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:
chown :512 /home/runoob
实际应用示例
1、Web 服务器文件管理
# 将网站文件所有权给web服务器 chown -R www-data:www-data /var/www/html/ # 设置上传目录权限 chown -R apache:apache /var/www/uploads/ chmod -R 755 /var/www/uploads/
2、用户文件管理
# 将用户目录所有权返回给用户 chown -R john:john /home/john/ # 新建用户后设置home目录 chown -R newuser:newuser /home/newuser/
3、系统服务文件
#设置服务日志文件所有者 chown syslog:adm /var/log/application.log # 设置数据库文件所有者 chown -R mysql:mysql /var/lib/mysql/
4、开发项目权限
# 设置项目文件所有者为开发团队 chown -R developer:developers /home/projects/webapp/ # 设置部署目录权限 chown -R deploy:deploy /opt/application/
高级使用技巧
1、批量操作
# 使用find命令批量更改 find /home/user -name "*.sh" -exec chown user:staff {} \; # 只更改特定类型文件的所有者 find /var/www -type f -name "*.php" -exec chown www-data:www-data {} \;
2、条件更改
# 只有当前所有者是root时才更改 chown --from=root john /home/john/file.txt # 基于参考文件设置 chown --reference=/etc/passwd /etc/shadow
3、符号链接处理
# 更改符号链接本身 chown -h john:staff /home/user/link # 更改符号链接指向的文件 chown john:staff /home/user/link
点我分享笔记