如何阻止用户设置他的路径

如何阻止用户设置他的路径

我已经使用有限的命令设置了受限用户,以使用 .profile 和 PATH 变量运行,但用户可以使用以下命令设置他的路径:

$ export PATH=$PATH:/bin:/sbin:/usr/bin

并可以访问其他命令。

有没有办法限制用户设置他的路径?

答案1

您可以使用readonlyBash 内置函数将变量设置为只读。但这不太可能阻止那些想要改变环境的人,因为他们可以简单地启动一个新的 shell,而不需要运行 RC 文件并设置自己的环境。还,这不会以任何方式妨碍某人运行不在PATH.变量PATH只是一个便利功能,允许用户编写foo而不是例如/usr/bin/foo.就是这样。它与安全没有任何关系。


保护环境的关键是首先仔细研究您的威胁模型是什么 - 您是否期望用户尝试读取其他用户的文件、破坏安装、窃听通信、发送垃圾邮件、获取信息root 访问权限,还是其他什么?一旦确定了这一点,您就可以开始研究哪些措施可以真正实现这一目标。

答案2

您应该研究 bash“受限”模式(以bash --restricted或开头bash -r),该模式会阻止诸如cd和 之类的命令阻止通过完整路径运行任何可执行文件,因此它只允许执行$PATH.

此外,它还可以防止修改环境变量,例如PATH.

您可以找到 bash“受限”模式的概述这里

答案3

最后,让它工作,所以bash -r没有工作,但我发现rbash安装了二进制文件,这是 bash 的受限版本。

添加为受限用户的外壳后/bin/rbash,它无法设置路径或以完整路径执行,这就是我想要的。谢谢大家的帮助!

相关内容