如何在Linux中使用chown命令更改文件/组所有者
Chown命令是改变所有权的简称,它是一个命令行实用程序,用来改变文件或目录甚至链接的用户或组的所有权。Linux的理念是这样的,每一个文件或目录都是由特定的用户或组拥有一定的访问权限。
通过不同的例子,我们将尝试看看chown命令的各种使用情况。chown命令采用了相当简单直接的语法。
$ chown OPTIONS USER: GROUP file(s)
USER属性是拥有该文件的用户的用户名。您可以指定用户名或UID(用户ID)。同时,GROUP选项指示文件在运行命令后将获取的新组的名称。file选项代表常规文件或目录,甚至是符号链接。这是三个可以更改其权限的实体。
需要注意的几点:
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
在上面的示例中,文件获取用户john的用户和组所有权。
4)如果不使用USER选项,而组选项之前是完整的冒号:GROUP,则仅文件的组所有权会更改。
如何查看文件权限
要查看文件许可权,只需使用ls -l命令后跟文件名
$ ls -l filename
例如:
$ ls -l file1.txt
从输出中,我们可以看到该文件由用户linuxtechi拥有,该用户分别在第3列和第4列中属于linuxtechi组。
如何使用chown命令更改文件所有者
在更改权限之前,如果您不是root用户,请务必调用sudo 。这为您提供了特权,可以更改文件的用户和组所有权。
要更改文件所有权,请使用以下语法:
$ sudo chown user filename
例如,
$ sudo chown james file1.txt
更改文件所有者Linux chown命令
从输出中,您可以清楚地看到文件的所有权已从linuxtechi更改为user james。
另外,也可以不使用用户名,而可以传递用户的UID。要获取UID,请查看/etc/passwd文件。
$ cat /etc/passwd | grep username
从下面的示例中,我们可以看到用户linuxtechi的UID为1002
要将文件所有权更改回linuxtechi用户,我们将执行以下命令:
$ sudo chown 1002 file1.txt
如何使用chown命令更改组所有者
如前所述,要更改文件的组所有者,请忽略用户,并在组名前面加上完整的冒号。
$ sudo chown :group file
例如,为了从改变FILE1.TXT的组所有者linuxtechi到搬运工,我们执行的命令:
$ sudo chown :docker file1.txt
如何同时更改文件的文件所有者和组所有者
如果要更改文件所属的所有者和组,请同时指定用户和组选项,并用完整的冒号分隔,如以下语法所示。确保选项和冒号之间没有空格。
$ sudo chown user:group filename
例如,以下命令将文件file1.txt的所有权更改为用户james和组redis(使用ls命令验证)。
$ 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
下面的示例将目录报告的所有权以及目录中的所有文件和文件夹分配给用户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的用户和组所有权。在命令中,file1.txt是参考文件。
Chown命令是一个功能强大的工具,用于管理文件和目录的所有权。有关更多信息,请查看chown手册页。