编辑sudoers文件以限制用户的命令


8

是否可以编辑sudoers文件,以便用户可以将sudo用于除指定命令以外的任何命令?相反,我相信,可以设置sudoers文件,以便用户只能执行给定的命令列表。

编辑:我真的想带走的命令是停止并重新启动...这使我认为有特殊的系统调用来停止并重新启动。您能否将系统调用从用户那里转移走?如果不是,是否是因为unix权限系统抽象了忽略此功能的系统调用?

Answers:


5

另一种看待它的方式是,如果用户具有不受限制的超级用户访问权限,则他们可以轻松获得完全的超级用户访问权限。

尽管您可能可以解决某些问题,但是很容易避免。

SElinux虽然是一种可能的方法,但是它确实需要大量学习。


3

要执行所需的操作(使用户窗体停止运行,重新引导和关闭),您将不得不研究SElinux的内容,以防止用户进行这些系统调用。否则,用户将只先运行/ bin / sh,然后再运行/ bin / halt而不经过sudo。


2
或可以从中获得Shell的无数程序中的任何一个,或它们自己的脚本。
罗纳德·帕托

3

通过sudo记录他们所做的所有事情,想必您有某种方法可以使您不再做任何事情。

Defaults logfile=/var/log/sudolog 

将记录它们运行的​​所有命令,请向Google稍作查询以获取更多信息。


您将需要集中式日志记录,并且如果它们运行外壳程序,则需要对它们大喊大叫。例如,可以从编辑器中获取外壳。或男人男人等
詹姆斯

3

是和否...您可以通过在文件名前加上一个爆炸(!)来阻止用户运行特定文件,但是您无法阻止用户将文件复制到另一个位置然后从那里运行。

User_Alias    ADMINS = peter, bob, bunny, %operator

ADMINS        ALL    = !/usr/bin/su, !SHELLS

授予其他用户对特定文件的访问权限


如何在上面设置“ SHELLS”的示例:Cmnd_Alias SHELLS = / bin / sh,/ bin / ksh,/ bin / bash,/ bin / zsh,\ / bin / csh,/ bin / tcsh,\ / usr / bin / login,/ usr / bin / su
pulcher,2009年

一堆实用程序可以让您以root身份运行命令(tar,链接和nmap不在我的头上),因此,老实说,真正的解决方案是将a)要以root身份运行的命令列入白名单,或者b)仅仅雇用您信任的人
Some Linux Nerd 2015年

2

如果用户真的想重新启动,他会找到一种方法。sudo -ssudo -isudo $EDITOR /etc/sudoers...可以用来删除您的限制。

在类Unix的系统上,只要您是root用户(uid 0),就可以重新引导系统。如果您找到限制这些系统调用的方法,则可以执行以下操作:

user $ echo b | 须藤tee / proc / sysrq-trigger

或其变体。或通过引起内核崩溃来重新启动。要么...

最后,拥有root用户访问权限通常可以使您消除所有限制。


令人遗憾的是,Linux不再具有安全级别。它们不是完美的,但是人是容易设置的。他们没有阻止重新启动,但是阻止了很多其他事情。而且由于它们非常简单,因此您可以在所有系统上使用它们。无需任何调整,此类操作是必需的。
托马斯

他们不是在BSD中,不是在Linux中吗?
user1686

1

当然,以root用户身份visudo并阻止'user'运行/ sbin / halt:

user ALL=(ALL) NOPASSWD: !/sbin/halt

我相信该请求是针对不允许用户运行的命令列表
Wayne

1

这样做有风险:通常有很多方法可以执行相同的操作。例如,telnit 6或init 6也会重新启动。可能还有一种方法可以强制内核进行核心转储并重新引导。


1

以下行应使用户“ jim”运行/ usr / bin / kill和/ usr / bin / su以外的所有内容。

jim          ALL= !/usr/bin/kill,!/usr/bin/su

0

这未经测试并且是YMMV,但是如何设置不想运行的命令的cmd_list,然后对指定的组/用户使用!cmd_list呢?

我无权对此进行测试,只是在Sudoers手册上在线查看了手册页,因此如果我错了,一些专家会在这里纠正我

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.