一、简介
chown(英文全拼:change owner)命令用于修改文件所有者和文件所属组的命令。
Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或所属组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。
注:chown 需要超级用户 root 的权限才能执行此命令,非超级用户如需要设置关联组可能需要使用 chgrp 命令(详情可参照Linux命令大全-chgrp命令)。
二、语法
语法:chown [选项]... [所有者][:[组]] 文件...
参数说明:
-R, --recursive: 递归更改目录及其子目录中所有文件的所有者
-v, --verbose: 显示详细操作信息
-c, --changes: 只显示实际发生更改的文件
-f, --silent, --quiet: 抑制错误信息
--reference=文件: 使用参考文件的所有者和组设置
-h, --no-dereference: 影响符号链接本身,而不是链接指向的文件
--from=当前所有者: 只有当前所有者匹配时才更改
三、 实战
1、只更改某一个文件或目录的所有者
[root@app01 abc]# chown tom 1.txt2、同时更改某一个文件或目录的所有者和所属组
[]3、只更改某一个文件或目录的所属组
[]注:如果只更改某一个文件或目录的所属组,“:”冒号一定要加上,否则会把该文件或者目录的所有者改掉。
4、使用用户id或组id进行更改
[]其中1002分别代表用户id和组id。
5、更改某一个目录下的所有文件或子目录的所有者和所属组
[root@app01 abc]# chown -R tom:tom test6、只更改条件匹配者
[]该from参数意思是说,只有所有者是tom的进行更改,改成所有者root。
7、基于参考文件设置
[root@app01 abc]# chown --reference=/app/abc/1.txt a.txt意思是说,a.txt的所有者和所属组,根据1.txt的权限进行设置。
8、符号链接文件处理
//更改符号链接本身[]//更改符号链接指向的文件[]
这里的linkfile代表软链接文件的原文件和链接文件。
-h 选项会改变符号链接的标识信息,即使该链接指向特定文件或目录,也不会修改目标文件或目录的所有者。
如,若符号链接指向文件 test.txt,执行 chown -h user1:group1 linkfile 后,linkfile 的所有者会变为 user1,但 test.txt 的所有者不会改变。
主要用于,当需要单独控制符号链接的权限时使用,避免影响实际文件或目录的权限设置,此时可以使用-h参数选项来完成。