为什么许多 Linux 文件具有 others=read 访问权限?

为什么许多 Linux 文件具有 others=read 访问权限?

我可以跑chmod o=- -R /嗎?

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

答案1

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

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

答案2

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

  • 模糊不清并不代表安全

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

  • 你将如何工作?

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

  • 系统功能

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

我可以执行 chmod o=- -R / 吗?

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

答案3

密码文件可供许多标准实用程序读取使用,这就是为什么存在/etc/shadow文件,普通用户无法读取,实际上存储的是加密密码。

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

答案4

ls 命令和许多其他命令使用 /etc/password 文件将用户 ID 转换为用户名。请勿更改它。

相关内容