doas
是sudo
最近在 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
也就不足为奇了(反之亦然)。您实际上应该在任何给定系统上只使用一个。sudo
doas
答案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
。