# chown - 用来变更文件或目录的拥有者或所属群组
chown命令 改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。
只有文件主和超级用户才可以便用该命令。
改变文件或者目录的所有者,或者所属的群组。如果只给出一个所有者(用户名或数字用户ID),则该用户将成为每个给定文件的所有者,并且文件的组不会被更改。如果所有者后面跟着冒号和组名(或数字组ID),在它们之间没有空格,那么文件的组所有权也会被更改。如果用户名后面有冒号,但没有组名,则使该用户成为文件的所有者,并将文件组更改为该用户的登录组。如果给出冒号和组,但省略了所有者,则只更改文件组;在本例中,Chown执行与chgrp相同的功能。如果只给出冒号,或者整个操作数为空,则所有者和组都不会更改。
# 适用范围
RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux
# 语法
chmod [选项] [owner:group], [owner], [.group] file
chmod [选项] –reference=RFILE file
# 选项
-c, --changes # 和verbose一样,但是只有在发生改变的时候才显示详细信息
--dereference # 修改符号链接所指的对象
-h, --no-dereference # 修改符号链接
--from=CURRENT_OWNER:CURRENT_GROUP # 仅当每个文件的当前所有者和组匹配此处指定的所有者和组时,才更改其所有者和组。可以省略这两种属性之一,在这种情况下,省略的属性不需要匹配。
--preserve-root # 禁止对根目录递归炒作
--no-preserve-root # 不特殊对待根目录,默认值
-f, --silent, --quiet # 忽略部分错误信息
--reference=file # 使用关联文件所属的组
-v, --verbose # 显示详细信息
-R, --recursive # 用递归的方式改变所有的目录和子目录
-H # 如果命令行参数是指向目录的符号链接,请遍历它。配合“-R”使用。
-L # 遍历到遇到的目录的每个符号链接,配合“-R”使用。
-P # 不要遍历任何符号链接(默认),配合“-R”使用。
--help # 显示帮助文档
--version # 显示命令版本信息
# 举例
通过名称改变组信息
[root@bogon 文档]$ ls -l 1.c #当前的组是sogrey
-rwxr--r-- 1 root sogrey 0 9月 7 09:11 1.c
[root@bogon 文档]$ chown .david 1.c #把组改为david。注意语法,前面有个点
[root@bogon 文档]$ ls -l 1.c
-rwxr--r-- 1 root david 0 9月 7 09:11 1.c
2)通过id修改组信息,id可以从/etc/group中找到
[root@bogon 文档]$ ls -l 1.c #当前的组是sogrey
-rwxr--r-- 1 root sogrey 0 9月 7 09:11 1.c
[root@bogon 文档]$ chown .500 1.c #把组改为500,这个id对应的名称就是david。注意语法,前面有个点
[root@bogon 文档]$ ls -l 1.c
-rwxr--r-- 1 root david 0 9月 7 09:11 1.c
3)通过名称改所有者
[root@bogon 文档]$ ls -l 1.c #当前的所有者,root
-rwxr--r-- 1 root sogrey 0 9月 7 09:11 1.c
[root@bogon 文档]$ chown david 1.c #把所有者改为david。
[root@bogon 文档]$ ls -l 1.c
-rwxr--r-- 1 david sogrey 0 9月 7 09:11 1.c
4)同时改变所有者和组
[root@bogon 文档]$ ls -l 1.c #当前的组是sogrey
-rwxr--r-- 1 root sogrey 0 9月 7 09:11 1.c
[root@bogon 文档]$ chown 500:500 1.c #把组和所有者都改为500,注意语法,中间有个冒号
[root@bogon 文档]$ ls -l 1.c
-rwxr--r-- 1 david david 0 9月 7 09:11 1.c