我理解这些命令的含义chown
,chgrp
但是我不明白除了将所有权分配给其他用户或组之外,您为什么要使用它们?这是出于安全目的还是出于其他原因?
答案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 操作系统上使用这些文件。