禁止用户创建新的 shell 实例

禁止用户创建新的 shell 实例

有什么方法可以禁止用户通过 sudoers 文件创建新的 shell 实例?还可以禁止他们设置任何环境变量?

我想在 sudoers 文件中写一行类似的内容:

someuser ALL=(ALL) NOPASSWD: ALL, NOTSETENVVARS: ALL, NONEWSHELLINSTANCES: ALL

其中:NOTSETENVVARS 表示不设置新的环境变量 NONEWSHELLINSTANCES 表示没有新的 shell 实例

提前致谢

答案1

我不会尝试将其与 结合起来ALL。如果您要限制用户,请先将其列入黑名单,然后再仔细将其列入白名单。

限制 shell 转义,请NOEXEC: 查看手册页以了解详细信息:https://www.sudo.ws/man/1.8.16/sudoers.man.html#Preventing_shell_escapes

创造性地使用env_reset和来限制环境变量(据我所知并未完全禁用) secure_path

例子:

Defaults     env_reset
Defaults     secure_path
someuser ALL=(root) NOPASSWD: SOMESPECIFICCOMMANDS
someuser ALL=(root) NOEXEC: /usr/bin/vim

另外,购买 Michael W. Lucas 的书掌握须藤。很棒!(他有一些更好的例子,但我认为最好不要抄袭它们。)

答案2

不。

此类控制并不存在,因为用户可以通过安装/执行自己的不受限制或修补限制的 shell 程序来轻松规避这些控制。

无法知道一个程序是否是 shell。

此外,该sudoers文件仅控制实用程序sudo,而不是用户运行之前sudo或提升之后执行的任何操作。

相关内容