「doas」を使用すると、ユーザーは他のユーザーと一緒にコマンドを実行し、環境変数を設定できます。

「doas」を使用すると、ユーザーは他のユーザーと一緒にコマンドを実行し、環境変数を設定できます。

私のOpenBSDコンピュータには2人の一般ユーザー(「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その後、次のように電話する必要があります。

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

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

関連情報