如何检查具有完全 root 访问权限的非 sudoers 用户的权限?

如何检查具有完全 root 访问权限的非 sudoers 用户的权限?

doassudo最近在 Debian 12、Ubuntu Jammy (universe) 和其他一些 Linux 发行版中打包的类似命令。

doasuser可以添加非 sudoers 用户 ( )/etc/doas.conf以授予 root 访问权限。详细说明Debian 维基

问题:

该人doasuser不属于任何团体。如果您授予 root 访问权限doasuser,则此信息不会与sudo(视为非特权用户)同步。doas仅附带一个二进制程序、一个 PAM 配置文件和/etc/doas.conf.

除此之外/etc/doas.conf,超级用户找不到 的权限doasuser

有没有命令行可以检查权限doasuser

答案1

doas不提供列出命令全部它授予给定用户的权限;您所能做的就是检查当前用户是否允许给定命令:

doas -C /etc/doas.conf some command

将告诉您,根据 中的设置/etc/doas.conf,是否允许当前用户运行some command(以及是否会要求用户输入密码才能运行)。

从“超级用户”的角度来看,这意味着您需要切换到doasuser的身份,然后doas -C按照上面的方式运行来检查权限。

sudo和是单独的工具,因此不了解配置doas也就不足为奇了(反之亦然)。您实际上应该在任何给定系统上只使用一个。sudodoas

答案2

据我理解这个问题,有一个名为的程序doas可以类似于sudo.可用于检查用户是否具有 root 权限的简单命令如下(在 shell 脚本中):

if [ "$(id -u)" != "0" ]; then
    # the user is not root
fi

上述相同命令可用于sudo, 或doas

解释: id是用于打印真实有效的用户和组ID的命令;具体来说,id -u仅打印有效用户 ID。如果用户具有 root 权限,则其有效 ID 将为0

相关内容