限制 sudo 用户对文件/文件夹的访问

限制 sudo 用户对文件/文件夹的访问

首先,提前抱歉,我知道有十亿个这样的问题,但对我来说没有任何作用......

我在目录中找到了 sudo 用户无法删除的某个文件。我知道 sudo 应该适用于所有事情,这是该小组的重点,但也许有一个解决方案

我正在考虑限制 sudo 可以执行的命令类型(在 /etc/sudoers 文件中),但首先,它不会真正解决任何问题,其次,通过使用以下示例,它无法以某种方式工作:

%wheel ALL=(ALL) ALL, !/usr/bin/rm

我尝试使用不同的组、我的用户名等,但我甚至无法限制我自己用户的命令

总之,有什么方法可以阻止 sudo 用户键入某些命令(例如 rm -rf name_of_folder),而不是阻止访问整个 rm 命令或任何其他解决方案?也许甚至可以在输入某个命令时要求输入密码?

答案1

总之,有什么方法可以阻止 sudo 用户输入某些命令,例如 rm -rf name_of_folder

不,因为你只能表达对命令和参数的简单匹配sudoers,并且用户很容易逃脱它们。例如,他们可以尝试rm -v foo、、rm -- foo等等rm foo -r。这取决于每个命令的确切接口,而 sudo 不理解它们。

而不是阻止访问整个 rm 命令或任何其他解决方案?

这是通常的选择。您阻止访问rm,但提供对您自己的受限命令的访问,通常是围绕 targe 命令的 shell“包装器”。

但受限命令的编写难度较大,安全风险较高。我建议您从不带参数的命令开始,这确保它忽略 stdin 及其环境,并通过 为您的用户提供 root 访问权限sudoers。然后也许添加 1 个 arg 并对其解释非常迂腐,特别是如果它是一条路径。

最基本的限制命令如下/usr/local/bin/restricted_rm

#!/bin/sh

exec </dev/null
/usr/bin/env -i rm -rf /absolute/path/to/folder

尝试与用户调整您的流程/界面,看看这样一个简单的脚本是否可以解决问题,这是值得的。否则,您会收到更复杂的“过滤”限制命令的警告,这是一个严重的安全隐患。即使你知道自己在做什么。到过那里。

相关内容