为什么要使用命令 chown 和 chgrp?

为什么要使用命令 chown 和 chgrp?

我理解这些命令的含义chownchgrp但是我不明白除了将所有权分配给其他用户或组之外,您为什么要使用它们?这是出于安全目的还是出于其他原因?

答案1

Linux 或其他 Unix 风格的系统被构建为多用户系统。

您必须明白,在这个概念中,不仅自然人算作用户,守护进程或其他程序也可能作为他们自己的用户运行。

例如:如果您想运行 Web 服务器,那么为 apache 服务创建专用用户是有意义的。这样,apache 就无法破坏它没有权限的文件,主要是因为它既不直接拥有这些文件,也不属于用户所在的任何组。

基本上,您可以分离对文件的访问权限,通过为用户分配多个组,您可以具体定义谁可以访问某些文件以及他们如何访问。

顺便说一下,chown :group /path/file它的作用是相同的chgrp,请注意组名前面的冒号,通过使用chown user:group /path/file它可以同时完成这两项操作。

我应该补充一点,必须相应地设置文件权限。使用chmod您可以为用户、组和世界设置文件的权限标志(读取、写入、执行)。

答案2

您已经完全理解了:您可以使用chown更改文件的所有权或组,以将所有权移交给其他人。您可以使用chmod更改与其中一个所有者相关的权限。

您没有错过任何更深层次的需求,只是这些操作表达的一般浅显需求。其他用户应该拥有某个文件的理由有数百万个,但没有一个比“因为我们这样做”更深刻。

答案3

如果您在某个操作系统上创建的 USB 闪存驱动器上保存了一堆文件,并且需要在另一个(Linux)操作系统上使用其中一些文件或全部文件,则可能需要运行 find 命令,并在一个实例中遍历目录树以 chown 所有文件,然后在另一个 find 命令中,使用 find 命令的 -exec 功能执行 chgrp 命令以使用这些文件(可能使用不同的用户和组 ID),以便可以在不同的 Linux 操作系统上使用这些文件。

答案4

这是由于一个简单的事情,叫做Unix 哲学

编写程序专做一件事并做好它。编写程序协同工作。编写程序来处理文本流,因为那是一个通用接口。

至少我是这样认为的:)

相关内容