为什么许多 linux 文件具有其他=读取访问权限?

Dev*_*rim 2 permissions chmod

我能跑chmod o=- -R /吗?

我不希望新创建的用户能够 cat /etc/passwd,仅仅因为它的默认权限。我想了解为什么为所有(以及大多数)系统文件以及其他文件的权限选择这些默认值。

Sve*_*ven 10

因为许多程序可能需要访问这些文件。例如,每当您执行 'ls -l' 时,系统都会查找 /etc/passwd 以在数字 uid 和用户名之间进行转换。如果用户没有读取该文件的任何权限,这将不起作用。

更重要的是,如果您获得每个文件的读取权限,您甚至无法再登录,因为您无法读取 shell 二进制文件。


the*_*ive 10

为什么不让系统文件可读?

  • 默默无闻不是安全

    即使人们知道它是如何工作的,您的系统也应该同样安全。如果您依靠保密的详细信息来确保系统安全,那么它被破坏只是时间问题。

  • 你将如何工作?

    人们普遍认为,您应该尽可能少地使用 root 帐户。如果您必须将 root 帐户用于最基本的任务,那么您最终只会一直使用它。

  • 系统功能

    在许多情况下,如果某些重要的 conf 文件不能被非 root 用户读取,系统就无法运行,正如其他人在/etc/passwd示例中所说明的那样。

我可以做 chmod o=- -R / 吗?

如果您想真正能够登录并使用系统,则不会。没有什么是完美的,但在大多数情况下,大多数发行版都有相对合理的默认权限。其中一些可能需要根据您的情况进行更改,但应该逐个文件地讨论,其中更改文件权限的影响是已知的。


drA*_*erT 6

许多标准实用程序都可以读取密码文件,这就是为什么存在/etc/shadow文件的原因,该文件不是普通用户可读的,而是实际存储加密密码的。

注意:即使加密,密码也存储在不可读的文件 ( /etc/shadow ) 中,以避免本地用户的暴力攻击