乐趣区

关于linux:如何使用-chown-命令更改文件的所属用户和用户组

chown (change ownership),chown 命令是一种命令行实用程序,用于更改文件或目录甚至链接的用户或组所有权。Linux 的理念是使每个文件或目录均由具备某些拜访权限的特定用户或组领有。

chown 命令语法如下:

$ chown OPTIONS USER: GROUP file(s)

让咱们简要地阐明一下这些参数:

  • USER: 指的是领有该文件的用户的用户名,能够指定用户名或 UID。
  • GROUP: 选项示意运行命令后文件将获取的新组的名称。
  • file(s): 选项示意一个惯例文件或一个目录,甚至是一个符号链接。

这里有几点须要留神:

(1) 当独自指定 USER 选项时,文件 / 目录的所有权更改为指定用户,组所有权放弃不变

$ chown john file1.txt

在下面的命令中,文件 file1.txt 的用户所有权从以后用户更改为 john。

(2) 如果 USER 选项前面是一个残缺的冒号,即 USER:,并且没有提供组名,那么用户取得文件的所有权,然而文件的组所有权切换到用户的登录组。

$ chown john: file1.txt

在本例中,用户 john 取得文件 file1.txt 的所有权,但该文件的组所有权更改为 john 的登录组。

(3) 当用户和组选项都用冒号分隔时,即 USER:GROUP,其中没有任何空格,文件将依照指定的形式取得新用户和组的所有权

$ chown john:john file1.txt

(4) 如果去掉 USER 选项,而在 GROUP 选项后面加一个冒号 :GROUP,则只扭转文件的组所有权。

查看文件权限

要查看文件权限,只需应用 ls -l 命令后接文件名

$ ls -l file1.txt

从输入中咱们能够看到该文件属于 linuxtechi 用户,属于 linuxtechi 组。

更改文件所有者

在更改权限之前,如果您不是以 root 用户的身份工作,请始终调用 sudo。这为您提供了更改文件的用户和组所有权的高级特权。

$ sudo chown user filename

例如:

$ sudo chown james file1.txt

从输入中,能够看到文件的所有权曾经从 linuxtechi 更改为用户 james

另外,也能够应用用户的 UID。要获取 UID,请查看 /etc /passwd 文件。

$ cat /etc/passwd | grep username

从上面的例子中,咱们能够看到用户 linuxtechi 的 UID 是 1002

要将文件所有权更改回 linuxtechi 用户,执行以下命令

$ sudo chown 1002 file1.txt

更改选所有者

如前所述,要更改文件的组所有者,能够省略用户,只需在组名后面加一个冒号。

$ sudo chown :group file

例如,要将 file1.txt 的组所有者从 linuxtechi 更改为 docker,执行以下命令

$ sudo chown :docker file1.txt

同时更改用户和组所有者

如果要同时更改文件的所有者和组,请指定用户和组选项,用冒号分隔,确保选项和冒号之间没有空格。

$ sudo chown user:group filename

例如,以下命令将文件 file1.txt 的所有权更改为用户 james,用户组 redis

$ sudo chown james:redis file1.txt

递归扭转文件所有权

当对目录利用权限时,您可能心愿递归地利用更改,使所有权更改向下利用到文件和子目录。为此,应用 -R 选项 或 –recursive 指令。

$ sudo chown -R user:group directory

将 /var /www 目录中的所有文件和文件夹所有权调配给 www-data 组

$ sudo chown -R :www-data /var/www

将 reports 目录中的所有文件和文件夹的所有权调配给 linuxtechi 用户

$ sudo chown -R linuxtechi reports

应用援用文件更改所有权

最初,还有一种很好的办法能够用来更改文件的所有权,那就是应用援用文件。chown 命令用来以另一个文件为参照点,更改文件的用户和组所属权。

$ chown –reference=ref_file file

假如您心愿将 file1.txt 的用户和组所有权调配给另一个文件 file2.txt

$ chown --reference=file1.txt file2.txt

下面的输入确认 file2.txt 继承了 file1.txt 的用户和组所有权

我的开源我的项目

  • course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 – github 仓库)
退出移动版