我想阻止需要升级权限的用户获得任何类型的 root shell。然而,由于有很多方法可以实现这一点,并且有许多非 root 命令(如 coreutils 中的命令),我想知道是否有任何可下载的 sudoers 策略提供限制性访问。
答案1
须藤
概述
sudo 允许您授予用户和组超级用户权限。 sudo 的配置文件可以在以下位置找到/etc/sudoers。通常,人们使用以下命令编辑 sudoers 文件维苏多。默认开启最多在发行版中,要么没有用户被授予 sudo 权限,要么创建的第一个用户被授予此类权限。 之后,创建的用户通常没有 sudo 权限。
灵活性
sudo 允许您为每个用户提供不同的设置,甚至将设置应用于用户组。例如,您可以给用户行政或团体管理员访问获得超级用户权限。
您还可以允许这些用户访问具体计划。例如,你可以给鲍勃须藤访问apt-get如果您信任 Bob 在您的系统上安装软件包和更新软件包。
您的系统很可能有一个 sudoers 文件,在这种情况下,您可以打开该文件并查看提供的示例。我将在这里向您展示一个可能会澄清问题的示例:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
这使得该组中的任何用户须藤在任何地方运行任何命令而无需提示输入密码的权限。用户必须首先进行身份验证(即:登录),但一旦发生这种情况,这些用户将拥有机器的 root 访问权限。
太长了;博士
大多数发行版都会为初始用户提供 sudo 访问权限,但此后创建的用户不会获得此类访问权限。您可以通过查看来验证这一点/etc/sudoers。只需确保用户无法通过 sudoers 文件访问 sudo,以确保没有用户可以通过 sudo 获得 root shell。
答案2
我不确定我是否理解这个问题。但是,如果您授予某些用户 root 权限(通过 sudo 或其他方式)来执行某个程序,并且该程序恰好提供对具有这些相同权限的 shell 的访问权限,则您无法对其执行任何操作。
当您授予执行特定程序的某些权限时,您必须相信该程序不会搞砸(当然,除非您真的信任用户)。
答案3
您是否正在寻找这样的东西:
# Allow members of group sudo to execute any command
username ALL = ALL, !/bin/sh, !/bin/bash, !/bin/tcsh, !/bin/csh, !/bin/ksh, !/bin/zsh, !/bin/su