我的 OpenBSD 机器上有两个普通用户(“user”和“TESTUSER”),我有这个 doas 配置:
# cat /etc/doas.conf
permit setenv { DISPLAY=:0 } nopass user /usr/X11R6/bin/xcalc as TESTUSER
#
但是当我尝试使用“user”(如“TESTUSER”)运行“xcalc”时,我只收到语法错误:
$ id
uid=1000(user) gid=1000(user) groups=1000(user), 0(wheel)
$ doas /usr/X11R6/bin/xcalc
doas: syntax error at line 1
$
问题: 我犯了什么语法错误?
https://man.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/doas.1 https://man.openbsd.org/doas.conf
答案1
您的配置
permit setenv { DISPLAY=:0 } nopass user /usr/X11R6/bin/xcalc as TESTUSER
不遵循手册中的格式(这是语法错误的来源):
permit|deny [options] identity [as target] [cmd command [args ...]]
该命令应该放在最后:
permit setenv { DISPLAY=:0 } nopass user as TESTUSER cmd /usr/X11R6/bin/xcalc
然后你需要调用doas
as
$ doas -u TESTUSER /usr/X11R6/bin/xcalc