Openbsd

“doas”允許使用者與其他使用者一起執行命令並設置環境變數

  • December 12, 2017

我的 OpenBSD 機器上有兩個普通使用者(“user”和“TESTUSER”),我有這個 doas 配置:

# cat /etc/doas.conf                                                                                                                                                                           
permit setenv { DISPLAY=:0 } nopass user /usr/X11R6/bin/xcalc as TESTUSER
# 

但是當我嘗試使用“使用者”(作為“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

你的配置

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

引用自:https://unix.stackexchange.com/questions/410108