有什么理由不将 sbin 添加到默认 PATH 中?

有什么理由不将 sbin 添加到默认 PATH 中?

背景:

环境PATH变量指定在发出命令时未指定路径时要搜索的目录。“sbin”路径(/sbin/usr/sbin)用于存放管理实用程序,因此许多 *nix 发行版在 的默认设置中不包含这些目录PATH。也就是说,在许多情况下,非管理帐户确实需要访问这些实用程序,并且必须指定完整路径或修改其PATH变量才能这样做。这项任务相对容易执行,但对于新用户来说可能很麻烦。更糟糕的是,当您涉及 PAM、sudo、ssh 和其他与设置交互甚至修改设置的实用程序时,会出现更困难的问题PATH。搜索此网站或整个互联网会找到许多这些问题的样本,这些问题困扰着新用户和老用户。

问题:

有了上述背景知识,是否有充分的理由不将 sbin 目录添加到默认 PATH ?(大概是通过/etc/profile/etc/profile.d或同等方式)

我承认“好”是主观的,但以下一些理由在我看来站不住脚。也许你不同意?

不太好的理由:

  • 安全
    • 对于世界可访问的目录 ( ),提升的权限和包含实用程序的目录无关r-x。 可能会提出一个模糊性论点,即足够不熟练的坏人无法找到“隐藏”的实用程序,但这将是一道令人遗憾的透明帷幕。
  • 命名空间
    • 有人可能会说,用户可能想要编写自己的reboot命令,通过他们添加到 中的自定义目录来访问该命令PATH,而 sbin 目录中的系统默认设置将胜过他们的配置。这是一个极端情况,在这种情况下,相关用户已经了解了PATH影响,并且可以修改其配置以在序列中更早地使用其目录。
  • 标准
    • 这绝不是对文件系统层次结构的改变;实用程序仍然根据其功能组织到其目录中。
    • 因为“我们已经习惯了这个问题”而不去解决它是愚蠢的。

答案1

普通用户没有理由不在他们的系统中安装这些程序PATH,并且如果普通用户调用其中一个程序是一个问题,那么该程序和/或其安全性需要修复。

你会很高兴在 RHEL 6 及更高版本中找到它,/sbin并且/usr/sbin现在是PATH所有用户的默认设置,因为它已经使用 Fedora 多年. (并且/sbin是从 RHEL 7 开始的符号链接/usr/sbin,但那是另一个问题。)

答案2

您可以通过本地或系统范围的 PATH 定义轻松添加它。分离的原因是大多是传统并且是“sbin”中命令的功能系统二进制文件...

在我的安装和环境中,这不是问题。我的用户不需要访问系统实用程序。增加运行sudosu -升级权限或键入完整命令路径的步骤是合理的,因为系统通常不承载交互式会话。但是,您的情况可能并非如此。如果这是个问题,请修改 PATH 变量。

相关内容