11 个更改文件混合的 Linux Chown 命令示例

言鼎科技 2023-07-13 225

摘要: 在本初学者指南中,我们将探讨 chown 命令的一些实际示例。遵循本指南后,用户可以有效地管理 Linux 上的文件可用性。烤


在Linux中,一切皆文件,即所有输入/输出,如文件、数据库、磁盘驱动器、打印机等都通过文件系统命名空间公开为文件。除此之外,Linux 中的每个文件都有相关的所有权。


所有权由两个实体代表——用户和组。权限和所有权的结合使得Linux能够高效地实现去中心化的访问机制。


在本指南中,我们将了解 chown 命令。顾名思义,chown 命令用于更改文件的所有者。遵循本指南后,初学者可以在使用 Linux 系统时有效地使用 chown 命令。


Chown命令的语法如下:


$ chown [选项]... [所有者][:[组]] [文件-1] [文件-2]...[文件-N]


现在让我们通过一些 Linux 中的好例子来了解 chown 命令的用法。


1. 如何查找文件所有者

查找文件所有者的最简单方法是使用 ls 命令,该命令将列出文件的用户和组。


$ touch file-1.txt

$ ls -l 文件-1.txt


在上面的输出中,我们可以看到该文件属于howtoing用户和组。该数据由第三列和第四列表示。


2. 如何更改文件所有权

chown 命令允许我们更改文件的所有者。让我们通过将用户 narendra 设置为文件的所有者来看看它的用法:


$ sudo chown narendra 文件-1.txt

现在,让我们检查文件的所有权是否已更改:


$ ls -l 文件-1.txt 


3. 如何更改组文件所有权

与用户一样,我们也可以使用 chown 命令更改文件的组所有者。因此,让我们为团队的文件设置团队所有权 - narendra:


$ sudo chown :narendra file-1.txt

需要注意的是,(:)在更改组的所有权时,我们必须使用与组名称成对的组。


现在,让我们验证拥有该文件的组:


$ ls -l 文件-1.txt


4. 如何更改文件所有权和组

在前面的示例中,我们使用了 chown 命令两次。首先,更改用户属性,然后更改组所有者。但我们可以使用单个命令更改用户和组。


让我们使用以下命令重置用户和组 howtoing 的文件所有权:


$ sudo chown howtoing:howtoing file-1.txt


在此示例中,我们使用冒号(:)将用户与组分隔开。该对之前的值代表用户,而该对之后的值代表组。


现在,让我们看看更新后的文件所有者:


$ ls -l 文件-1.txt 


5. 如何更改模型连接的所有权

默认情况下,chown 命令删除符号链接,也就是说,如果输入文件是符号链接,则它返回引用文件的所有权,而不是符号链接本身。


但是,我们可以使用选择来覆盖默认行为,-h如下例所示。


首先,创建一个示例链接并验证它是否指向正确的参考文件:


$ ln -s file-1.txt 符号链接

$ ls -l 符号链接

-h接下来,使用选项更改示例连接的所有者:


$ sudo chown -h narendra:narendra 符号链接

最后,检查它是否属于示例链接及其参考文件:


$ ls -l 符号链接文件-1.txt


6. 如何将文件所有权分配给用户

有时我们只需要在验证文件当前所有权后更新文件所有权。在这种情况下,我们可以使用--fromchown 命令中的选项,如下所示。


$ sudo chown -h --来自 narendra:narendra howtoing:howtoing 符号链接

在此示例中,--from该选项代表文件的当前所有者,而下一个参数代表新所有者。因此,如果文件属于用户和组 narendra,则上述命令仅更改文件的所有权 - 符号链接。


现在,让我们看看更新文件的所有权:


$ ls -l 符号链接



在此示例中,我们(:)使用双引号指定用户和组。但是,我们可以按照前面示例中的讨论来指定每一个。


7. 如何从另一个文件复制所有权

有时,最好从现有文件中复制所有权,而不是从命令行提供相同的所有权。在这种情况下,我们可以使用--referenceselect 和 chown 命令,它代表将从中复制所有权的文件。


首先,创建一个新文件并更改其所有者:


$ touch file-2.txt

$ sudo chown narendra:narendra file-2.txt

现在,让我们看看这两个文件的当前所有者:


$ ls -l 文件1.txt 文件2.txt 

接下来,使用以下命令将 file-2.txt 文件的所有权设置为 file-1.txt:


$ sudo chown --reference=file-1.txt file-2.txt

最后,检查所有权是否已成功转移:


$ ls -l 文件1.txt 文件2.txt 


从上面的输出中,我们可以看到现在两个文件具有相同的所有权。


8. 如何更改站点所有权强制重复

我们还可以使用 chown 命令来更改库所有权。但是,该命令的默认行为不是递归的。


这意味着 chown 命令只会更改输入文件夹的所有权。但是,我们可以使用-R选择来覆盖此默认行为,如下例所示。


首先,创建一个文件夹并在其中创建两个文件:


$ mkdir dir-1

$ touch dir-1/demo-1.txt dir-1/demo-2.txt

接下来,检查文件夹及其文件的所有者:


$ ls -ld dir-1

$ ls -l dir-1

然后,递归地更改文件夹及其文件的所有者:


$ sudo chown -R narendra:narendra dir-1

最后,检查该文件夹及其文件是否拥有:


$ ls -ld dir-1

$ ls -l dir-1


9. 如何打印 chown 命令进程报告

默认情况下,chown 命令在更改其所有者后不会在终端上打印任何内容。所以,到目前为止,我们使用-lls 命令中的选项来验证更新后的 master。


为了克服这个限制,我们可以启用命令的表达式形式来打印每个修改文件的诊断信息。当我们与-R选项一起使用时,此选项提供了有意义的信息:


因此,让我们使用命令行-v选项来启用详细模式:


$ sudo chown -Rv howtoing:howtoing dir-1

现在,让我们看看命令的输出:



10. 如何阻止 chown 命令错误

与其他 Linux 命令一样,chown 在发生错误情况时提供有意义的信息。发生该错误的原因有多种,例如缺少文件、组或用户、执行某些功能的权限不足等等。


然而,有时我们不想显示这些错误消息。在这种情况下,我们可以使用命令-f选项来关闭错误消息。


为了更好地理解这一点,让我们尝试更改一个不存在的文件的所有者:


$ sudo chown -f narendra:narendra 不存在的文件.txt

$回声$?

1

现在,让我们看看命令的输出:



正如我们所看到的,上面的命令没有显示任何错误。但是,该命令通过使用非零返回值来报告失败。


11. 如何更改文件用户和组 ID

到目前为止,我们已经使用用户名和组名来更改文件的所有权。然而,我们也可以使用用户和组 ID 来达到相同的结果。


首先,使用 id 命令查找用户 narendra 的用户和组 ID:


$ id 纳伦德拉

现在,让我们通过 chown 命令使用用户和组 ID 1001:


$ ls -l 文件-1.txt

$ sudo chown 1001:1001 文件-1.txt

最后,检查所有权是否已成功转移:


$ ls -l 文件-1.txt


在本文中,我们将研究 chown 代码的一些实际示例。人们可以在日常生活中使用这些示例来提高使用 Linux 系统时的工作效率。


您知道 Linux 中 chown 命令的其他最佳示例吗?请在下面的评论中告诉我们您的看法。

言鼎科技

The End