是否有充分的理由不将 sbin 添加到默认 PATH 中?

Jos*_*ler 5 linux shell environment-variables

背景:

PATH环境变量指定通过时的命令而不指定路径发出搜索的目录。"sbin" 路径 ( /sbin, /usr/sbin) 旨在容纳管理实用程序,因此许多 *nix 发行版不将这些目录包含在PATH. 也就是说,在许多情况下,非管理帐户合法地需要访问这些实用程序,并且必须指定完整路径或修改其PATH变量才能这样做。此任务相对容易执行,但对于新用户来说可能很麻烦。更糟糕的是,当您涉及 PAM、sudo、ssh 和其他与PATH环境。对该站点或整个互联网的搜索会产生许多这些问题的样本,这些问题困扰着新老用户。

问题:

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

我承认“好”是主观的,但在我看来,这里有一些不成立的原因。也许你不同意?

不好的理由:

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

Mic*_*ton 5

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

您会很高兴在 RHEL 6 及更高版本中发现这一点,/sbin并且/usr/sbin现在是PATH所有用户的默认设置,就像Fedora 中多年来一样。(这/sbin是从 RHEL 7 开始的符号链接/usr/sbin,但这是另一个问题。)