背景:
环境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”中命令的功能系统二进制文件...
在我的安装和环境中,这不是问题。我的用户不需要访问系统实用程序。增加运行sudo
或su -
升级权限或键入完整命令路径的步骤是合理的,因为系统通常不承载交互式会话。但是,您的情况可能并非如此。如果这是个问题,请修改 PATH 变量。