在这篇 Linux 指南中,详细记录了chown 命令的基础知识。
chown代表 “Change Owner”,是处理Linux权限系统时需要学习的关键命令。在Linux中,每个文件和目录都有一个相关的所有者用户和所有者组。这些所有者通常拥有最多的访问权限。通过使用chown命令,可以改变文件、目录或符号链接的所有者和组。
要使用此命令,需要拥有超级用户权限的用户才能使用。普通用户不能使用此命令。
chown命令语法
chown命令语法比较简单。
chown [OPTIONS] [USER][:GROUP] FILE(s)
- [OPTIONS]-在这里,指定想使用该命令的选项。我在后面的内容中会讲到其中的几个选项。
- [USER] – 这是想把文件或目录的所有权交给的用户的名字或UID。
- [:GROUP] – 这是要赋予所有权的组的名称或UID。必须在名称的开头用冒号(:)指定一个组。
- FILE(s) – 这是应该改变所有权的文件或目录的列表。每个文件或目录都应该用空格隔开。
要使用该命令,必须要指定一个用户或组。
以下是指定用户或组的各种方法,你可以指定你想给的所有权。
- USER – 如果只指定一个用户,那么该用户将成为文件/目录的所有者。不会对拥有该文件的组进行任何更改。
- USER: – 在冒号(:)旁指定一个用户,但没有组名,将使该用户成为文件的所有者,并将组改为该用户的组。
- USER:GROUP – 如果同时指定了一个用户和一个组,那么所有权将变更为他们。用户名和组名应该用冒号(:)隔开,不能有空格。
- :GROUP – 当只想改变一个文件的组时,需要在组名的开头使用冒号(:)。
- 冒号(:) – 意味着指定文件或目录的所有权将保持不变。这相当于不运行该命令。
使用chown改变文件的所有者
在本节中,展示如何使用chown命令来改变文件的所有者而不影响组。在这种情况下使用该命令相当简单。需要做的就是指定用户名,然后是你要修改的文件列表,如下图所示。
chown USER FILE(s)
改变文件所有者的例子
下面是几个关于如何改变文件或目录所有者的例子。
例1
对于的第一个例子,使用chown命令将名为 “exampleFile1 “的文件的所有权改为名为 “labno3″的新所有者。
chown labno3 exampleFile1
例2
在第二个例子中,做一些类似的事情,但要改变一个文件和目录的所有权。这个目录将被称为 “exampleDir1″。
chown labno3 exampleFile1 exampleDir1
用chown改变文件的所有者和组
在本节中,展示如何使用chown命令来改变文件/目录的所有者和组。
下面你可以看到这样做的基本语法。
chown USER:GROUP FILES(s)
正如你所看到的,当指定用户名和组时,它们之间必须用冒号(:)分隔,不能有空格。如果你不小心留下了一个空格,chown命令会认为你是用它来指定文件名。
更改文件所有者和组的例子
下面的两个例子应该能让你了解如何执行chown命令来改变文件或目录的所有者和组。
例1
使用下面的命令,改变名为 “exampleFile1 “的文件的所有权。
对于这个文件,设置所有者为 “labno3″,组为 “raspberrypi”。
chown labno3:raspberrypi exampleFile1
例2
如果省略冒号(:)后面的组名,那么定义的文件/目录的组将改为用户的主组。
例如,我要改变名为 “exampleFile1 “的文件的所有权,使其与 “labno3″用户的组相匹配。
chown labno3: exampleFile1
由于没有指定组,chown命令将检查指定用户的默认组,并使用该组来代替。
用chown只改变文件的组
也可以利用chown命令,使它只修改文件/目录的组。要做到这一点,需要利用冒号(:)跟在组名后面,不在前面指定一个用户名。
chown :GROUP FILES(s)
这样使用chown命令相当于使用chgrp命令。唯一不同的是,使用chgrp命令可以不需要成为超级用户。
更改文件/目录组的例子
改变一个文件的组是非常直接的。在这个例子中,把名为 “exampleFile1 “的文件组改为 “raspberrypi”。
chown :raspberrypi exampleFile1
递归改变文件/目录的所有权
也可以使用chown命令递归地取得指定位置的文件/目录的所有权。要做到这一点,需要使用-R(Alternatively–recursive)选项。
chown -R USER:GROUP DIRECTORY
如果该选项存在,chown将改变指定目录内所有文件和子目录的所有权。
更改文件/目录组的例子
在这个例子中,我将把”/var/example “目录下的所有文件和子目录的所有权改为 “labno3″用户和组。
chown -R labno3: /var/example
正如你所看到的,使用-R选项是非常简单。当你需要改变整个文件目录的权限时,这个选项是非常好用的。
在符号链接上使用chown
默认情况下,chown命令对符号链接(Symlinks)不起作用。当你在一个符号链接上使用chown时,它将改变符号链接的目标的所有权,而不是链接本身。要改变链接本身的所有权,需要使用-h(–no-dererefence)选项。
chown -h USER:GROUP FILE(s)
这个选项可以和其他选项结合起来,比如递归选项(-r)。
chown -hR USER:GROUP FILE(s)
查看文件的所有者和组
也可以通过使用以下命令来查看文件或目录的所有者和组。
ls -l [FILE/DIRECTORY]
例如,如果我想检查一个名为 “samplefile “的文件的所有者和组,我可以使用下面的命令。
ls -l samplefile
使用这个命令,会得到一个类似于我下面所示的结果。
第3列显示拥有文件/目录的用户。
第4列显示拥有文件/目录所有权的组。
希望到这里,你已经知道如何使用chown命令了。如果你在使用该命令时遇到了任何问题,那么欢迎在下面留言。
欢迎转载,请留下出处链接:Labno3 » Liunx更改文件所属用户和组,举例详细介绍chown命令