“doas”允许用户与其他用户一起运行命令并设置环境变量

“doas”允许用户与其他用户一起运行命令并设置环境变量

我的 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

然后你需要调用doasas

$ doas -u TESTUSER /usr/X11R6/bin/xcalc

https://man.openbsd.org/doas.conf

相关内容