Liunx更改文件所属用户和组,举例详细介绍chown命令

在这篇 Linux 指南中,详细记录了chown 命令的基础知识。

chown-command-guide-thumbnail.png

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命令了。如果你在使用该命令时遇到了任何问题,那么欢迎在下面留言。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » Liunx更改文件所属用户和组,举例详细介绍chown命令

赞 (0)

评论

1+7=