Linux chown命令详解

Linux chown命令教程

Linux 中的 chown 命令用于将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。

一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。

Linux chown命令详解

功能

通过 chown 改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。

语法

chown [options] newowner file

参数

参数 描述
options chown 命令使用的参数。
newowner 文件所属组。
file 需要变更权限的文件或目录。

chown命令常用参数

选项 含义
-c 显示更改的部分的信息。
-f 不显示错误信息。
-h 修复符号链接。
-v 显示详细的处理信息。
-R 处理指定目录以及其子目录下的所有文件。
–reference=<参考文件或目录> 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组。
–from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变。

Linux chown命令常用实例

实例

实例 描述
chown owner:group file 将文件 file 的拥有者修改为 owner,群组修改为 group。
chown owner: file 将文件 file 的拥有者修改为 owner。
chown :group file 将文件 file 的群组修改为 group。
chown -R owner:group dir 将目录 dir 的拥有者修改为 owner,群组修改为 group,并递归处理。

说明

chown 命令的拥有者和群组以冒号分割,冒号之前的是拥有者,冒号之后的是群组。如果操作目录,需要递归处理,需要使用 R 参数。

修改文件拥有者和群组

语法

chown owner:group file

案例

我们使用 useradd 命令,创建一个 haicoder 用户,具体命令如下:

useradd haicoder

运行后,终端输出如下:

10_Linux修改文件拥有者和群组chown命令详解.png

现在,我们使用 touch 命令,创建一个 haicoder.txt 文件,具体命令如下:

touch haicoder.txt

运行后,终端输出如下:

11_Linux修改文件拥有者和群组chown命令详解.png

现在,我们使用 ls 命令,查看文件 haicoder.txt 的拥有者和群组,具体命令如下:

ls -l haicoder.txt

运行后,终端输出如下:

12_Linux修改文件拥有者和群组chown命令详解.png

我们看到,此时 haicoder.txt 文件的拥有者和所属组都为 root,现在,我们使用 chown 命令,修改其拥有者和所属组都为 haicoder,具体命令如下:

chown haicoder:haicoder haicoder.txt

运行后,终端输出如下:

13_Linux修改文件拥有者和群组chown命令详解.png

现在,我们再次使用 ls 命令,查看拥有者和所属组,具体命令如下:

ls -l haicoder.txt

运行后,终端输出如下:

14_Linux修改文件拥有者和群组chown命令详解.png

我们看到,文件的拥有者和所属组都已经变成了 haicoder 。

修改文件拥有者

语法

chown owner: file

案例

我们使用 ls 命令,查看文件 haicoder.txt 的拥有者和群组,具体命令如下:

ls -l haicoder.txt

运行后,终端输出如下:

15_Linux修改文件拥有者和群组chown命令详解.png

我们看到,此时 haicoder.txt 文件的拥有者和所属组都为 haicoder,现在,我们使用 chown 命令,修改其拥有者为 root,具体命令如下:

chown root: haicoder.txt

运行后,终端输出如下:

16_Linux修改文件拥有者和群组chown命令详解.png

现在,我们再次使用 ls 命令,查看拥有者和所属组,具体命令如下:

ls -l haicoder.txt

运行后,终端输出如下:

17_Linux修改文件拥有者和群组chown命令详解.png

我们看到,文件的拥有者和所属组都已经变成了 root。

修改文件群组

语法

chown :group file

案例

我们首先,使用 chown 命令,将文件 haicoder.txt 的拥有者和群组都修改为 root ,具体命令如下:

chown root:root haicoder.txt

现在,我们使用 ls 命令,查看文件 haicoder.txt 的拥有者和群组,具体命令如下:

ls -l haicoder.txt

运行后,终端输出如下:

18_Linux修改文件拥有者和群组chown命令详解.png

我们看到,此时 haicoder.txt 文件的拥有者和所属组都为 root,现在,我们使用 chown 命令,修改其群组为 haicoder,具体命令如下:

chown :haicoder haicoder.txt

运行后,终端输出如下:

19_Linux修改文件拥有者和群组chown命令详解.png

现在,我们再次使用 ls 命令,查看拥有者和所属组,具体命令如下:

ls -l haicoder.txt

运行后,终端输出如下:

20_Linux修改文件拥有者和群组chown命令详解.png

我们看到,文件的拥有者还是 root,但所属组已经变成了 haicoder。

递归修改文件夹拥有者和群组

语法

chown -R owner:group dir

案例

我们使用 mkdir 命令,递归创建多级文件夹,具体命令如下:

mkdir -p haicoder1/haicoder2/haicoder3

运行后,终端输出如下:

21_Linux修改文件拥有者和群组chown命令详解.png

现在,我们使用 ls 命令,查看文件夹 haicoder 的拥有者和群组,具体命令如下:

ls -ld haicoder1 haicoder1/haicoder2 haicoder1/haicoder2/haicoder3

运行后,终端输出如下:

22_Linux修改文件拥有者和群组chown命令详解.png

我们看到,此时三个文件夹的拥有者和所属组都为 root,现在,我们使用 chown 命令,递归修改其拥有者和所属组为 haicoder,具体命令如下:

chown -R haicoder:haicoder haicoder1

运行后,终端输出如下:

23_Linux修改文件拥有者和群组chown命令详解.png

现在,我们使用 ls 命令,查看文件夹所属组,具体命令如下:

ls -ld haicoder1 haicoder1/haicoder2 haicoder1/haicoder2/haicoder3

运行后,终端输出如下:

24_Linux修改文件拥有者和群组chown命令详解.png

我们看到,此时三个文件夹的拥有者和所属组都已经变成了 haicoder 。

Linux chown命令详解总结

Linux 中的 chown 命令用于将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。

一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。