Linux 中的 chown 命令用于将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。
一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。
通过 chown 改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
chown [options] newowner file
参数 | 描述 |
---|---|
options | chown 命令使用的参数。 |
newowner | 文件所属组。 |
file | 需要变更权限的文件或目录。 |
选项 | 含义 |
---|---|
-c | 显示更改的部分的信息。 |
-f | 不显示错误信息。 |
-h | 修复符号链接。 |
-v | 显示详细的处理信息。 |
-R | 处理指定目录以及其子目录下的所有文件。 |
–reference=<参考文件或目录> | 把指定的目录/文件作为参考,把操作的文件/目录设置成参考文件/目录相同拥有者和群组。 |
–from=<当前用户:当前群组> | 只有当前用户和群组跟指定的用户和群组相同时才进行改变。 |
实例 | 描述 |
---|---|
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
运行后,终端输出如下:
现在,我们使用 touch 命令,创建一个 haicoder.txt 文件,具体命令如下:
touch haicoder.txt
运行后,终端输出如下:
现在,我们使用 ls 命令,查看文件 haicoder.txt 的拥有者和群组,具体命令如下:
ls -l haicoder.txt
运行后,终端输出如下:
我们看到,此时 haicoder.txt 文件的拥有者和所属组都为 root,现在,我们使用 chown 命令,修改其拥有者和所属组都为 haicoder,具体命令如下:
chown haicoder:haicoder haicoder.txt
运行后,终端输出如下:
现在,我们再次使用 ls 命令,查看拥有者和所属组,具体命令如下:
ls -l haicoder.txt
运行后,终端输出如下:
我们看到,文件的拥有者和所属组都已经变成了 haicoder 。
chown owner: file
我们使用 ls 命令,查看文件 haicoder.txt 的拥有者和群组,具体命令如下:
ls -l haicoder.txt
运行后,终端输出如下:
我们看到,此时 haicoder.txt 文件的拥有者和所属组都为 haicoder,现在,我们使用 chown 命令,修改其拥有者为 root,具体命令如下:
chown root: haicoder.txt
运行后,终端输出如下:
现在,我们再次使用 ls 命令,查看拥有者和所属组,具体命令如下:
ls -l haicoder.txt
运行后,终端输出如下:
我们看到,文件的拥有者和所属组都已经变成了 root。
chown :group file
我们首先,使用 chown 命令,将文件 haicoder.txt 的拥有者和群组都修改为 root ,具体命令如下:
chown root:root haicoder.txt
现在,我们使用 ls 命令,查看文件 haicoder.txt 的拥有者和群组,具体命令如下:
ls -l haicoder.txt
运行后,终端输出如下:
我们看到,此时 haicoder.txt 文件的拥有者和所属组都为 root,现在,我们使用 chown 命令,修改其群组为 haicoder,具体命令如下:
chown :haicoder haicoder.txt
运行后,终端输出如下:
现在,我们再次使用 ls 命令,查看拥有者和所属组,具体命令如下:
ls -l haicoder.txt
运行后,终端输出如下:
我们看到,文件的拥有者还是 root,但所属组已经变成了 haicoder。
chown -R owner:group dir
我们使用 mkdir 命令,递归创建多级文件夹,具体命令如下:
mkdir -p haicoder1/haicoder2/haicoder3
运行后,终端输出如下:
现在,我们使用 ls 命令,查看文件夹 haicoder 的拥有者和群组,具体命令如下:
ls -ld haicoder1 haicoder1/haicoder2 haicoder1/haicoder2/haicoder3
运行后,终端输出如下:
我们看到,此时三个文件夹的拥有者和所属组都为 root,现在,我们使用 chown 命令,递归修改其拥有者和所属组为 haicoder,具体命令如下:
chown -R haicoder:haicoder haicoder1
运行后,终端输出如下:
现在,我们使用 ls 命令,查看文件夹所属组,具体命令如下:
ls -ld haicoder1 haicoder1/haicoder2 haicoder1/haicoder2/haicoder3
运行后,终端输出如下:
我们看到,此时三个文件夹的拥有者和所属组都已经变成了 haicoder 。
Linux 中的 chown 命令用于将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。
一般来说,这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限把自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。