11 个更改文件混合的 Linux Chown 命令示例
摘要: 在本初学者指南中,我们将探讨 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 命令的其他最佳示例吗?请在下面的评论中告诉我们您的看法。