linux chown命令详解


chown命令可以改变文件的拥有者,为change owner的缩写.文件拥有者必须是在/etc/passwd文件中记录的合法用户账号. chown命令不仅可以更改文件的所有者,也可以更改文件的所属用户组,文件所属用户组必须是在/etc/group文件中记录的合法用户组.
chown命令常用格式如下所示:
[root@initroot ~]# chown [-R] 账号名称 文件或目录 
[root@initroot ~]# chown [-R] 账号名称:用户组名 文件或目录 
              
-R选项可以递归(recursive)更改目录及其子目录下文件的拥有者.
将backup.sh文件的所有者变更为cristina:
[root@initroot ~]# chown cristina backup.sh
[root@initroot ~]# ls -al backup.sh
-rwxrw-r--   3 cristina initroot  4096 Dec 17 19:52 backup.sh
将backup.sh文件的所有者与所属用户组都改为root:
[root@initroot ~]# chown root:root backup.sh
[root@initroot ~]# ls -al backup.sh
-rwxrw-r--   3 root root  4096 Dec 17 19:52 backup.sh
              
同时更改文件所有者和所属用户组,也可以使用chown user.group file的形式.即在拥有者与用户组之间用.隔开. 但是有些用户帐号名中可能存在小数点,比如peter.p,这样就会造成混乱. 所以这里建议使用冒号:来隔开拥有者与用户群组.
另外,chown也能单独修改所属用户组,例如将backup.sh的所属用户组修改为initroot:
              chown .initroot backup.sh
              
只需要在用户组名之前加上一个小数点.就可以了!

chown为change owner的缩写,用于更改文件的拥有者。owner必须是/etc/passwd中记录的用户名,否则提示报错。
-R选项用于递归(recursive)修改,即连同目录内的所有文件、子目录都更新为新用户。常常用在修改某一目录内的所有文件以及子目录

chown:改变文件属主。
常用选项:
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quite或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-v或——version:显示指令执行过程;
--dereference:效果和“-h”参数相同;
--help:在线帮助;
--reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
--version:显示版本信息。

用法示例:

chown [-R] owner filename/dirname
chown [-R] owner:group filename/dirname
将initroot.html文件的拥有者更改为www:
chown www initroot.html
将initroot目录下的所有文件以及子目录的拥有者更改为www:
chown -R www initroot
将initroot目录下的所有文件以及子目录的拥有者以及所属用户组都更改为www:
chown -R www:www initroot

Usage:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
or:
chown [OPTION]... --reference=RFILE FILE...
Change the owner and/or group of each FILE to OWNER and/or GROUP.
With --reference, change the owner and group of each FILE to those of RFILE.
-c, --changes like verbose but report only when a change is made
-f, --silent, --quiet suppress most error messages
-v, --verbose output a diagnostic for every file processed
--dereference affect the referent of each symbolic link (this is the default), rather than the symbolic link itself
-h, --no-dereference affect symbolic links instead of any referenced file (useful only on systems that can change the ownership of a symlink)
--from=CURRENT_OWNER:CURRENT_GROUP change the owner and/or group of each file only if its current owner and/or group match those specified here. Either may be omitted, in which case a match is not required for the omitted attribute
--no-preserve-root do not treat '/' specially (the default)
--preserve-root fail to operate recursively on '/'
--reference=RFILE use RFILE's owner and group rather than specifying OWNER:GROUP values
-R, --recursive operate on files and directories recursively
The following options modify how a hierarchy is traversed when the -R option is also specified. If more than one is specified, only the final one takes effect.
-H if a command line argument is a symbolic link to a directory, traverse it
-L traverse every symbolic link to a directory encountered
-P do not traverse any symbolic links (default)
--help display this help and exit
--version output version information and exit
Owner is unchanged if missing. Group is unchanged if missing, but changed to login group if implied by a ':' following a symbolic OWNER.OWNER and GROUP may be numeric as well as symbolic.
Examples:
chown root /u Change the owner of /u to "root".
chown root:staff /u Likewise, but also change its group to "staff".
chown -hR root /u Change the owner of /u and subfiles to "root".
GNU coreutils online help: http://www.gnu.org/software/coreutils/ Full documentation at:
http://www.gnu.org/software/coreutils/chown or available locally via:
info '(coreutils) chown invocation'

initroot编辑整理,转载请注明www.initroot.com

100次点赞 100次阅读