Linux命令完全指南

Linux chown命令使用详解

chown命令修改每个由第一个非选项参数声明的给定 file(文件) 的用户和/或组的所有权.如下:

如果只给出了用户名(或者数字用户标识),那么该用户即成为每个指定文件的所有者,而该文件的组别并不改变.如果用户名后面紧跟着冒号和组名(或者是数字组标识),并且它们之间没有空格,那么文件的组所有权也随之改变.

GNU版本允许使用一个点来替代冒号(学BSD的).[因为点是有效的用户名中的字符,所以这不被POSIX所接纳.]如果有一个冒号或者点,却没有组名跟在用户名后,那么该用户即成为文件的所有者,而且文件的组改为该用户的登录组.如果给定了冒号或者点,以及组,但是省略了用户名,那么只有文件的组被修改;在这种情况下, chown 执行的是与 chgrp 相同的功能.

用法

chown [options] [owner] [:[group]] file…

chown [options] –reference=RFILE FILE…

选项说明
-c, –changes详尽地描述每个 file 实际改变了哪些所有权.
-f, –silent, –quiet不打印文件所有权不能修改的报错信息.
-v, --verbose详尽地描述对每个 file 所执行的操作(或者无操作).
–dereference修改符号链接目标端的所有权,而非符号链接自身.
-h, --no-dereference只作用于其本身的符号链接,而不修改它们所指向的文件.
–from=CURRENT_OWNER:CURRENT_GROUP仅在每个文件的当前文件时更改其所有者和/或组所有者和/或组匹配此处指定的那些。可能是省略,在这种情况下省略匹配属性
–no-preserve-root不对根目录做特殊对待(默认值)
–preserve-root阻止对根目录的遍历操作
**--reference=**rfile修改 file 的所有权为 rfile 的所有权.
-R, --recursive递归地修改目录及其下面内容的所有权.
–help显示辅助说明信息
–version显示版本

下面的选项在制定了-R选项时有效,如果同时指定了多个,那么只有读后一个生效

  • -H : 如果参数是符号链接,就遍历它
  • -L : 遍历遇到的每一个指向目录的的符号链接
  • -P : 不便利符号链接(默认值)

实例

将目录/u的所有者改为”root”

1
chown root /u

将目录/u的所有者改为”root”,组改为”staff”

1
chown root:staff /u

将目录/u及其子文件的所有者更改为”root”

1
chown -hR root /u