完全なrootアクセス権を持つsudoers以外のユーザーの権限をどのように確認できますか?

完全なrootアクセス権を持つsudoers以外のユーザーの権限をどのように確認できますか?

doassudo最近、Debian 12、Ubuntu Jammy(ユニバース)、その他のLinuxディストリビューションにパッケージされた同様のコマンドです。

doasusersudoer以外のユーザー()を追加して/etc/doas.confrootアクセス権を付与できます。詳細説明Debian Wiki

質問:

その人はdoasuserどのグループにも属していません。ルートアクセスを許可すると、この情報は(無許可のユーザーと見なされます)同期されませdoasuserん。バイナリ、PAM設定ファイルと。sudodoas/etc/doas.conf

それ以外の場合、/etc/doas.confスーパーユーザーは権限を見つけることができませんdoasuser

権限を確認するコマンドラインがありますかdoasuser

答え1

doasリストコマンドは提供されていません。みんな特定のユーザーに権限を付与します。現在のユーザーが特定のコマンドを許可していることを確認するだけです。

doas -C /etc/doas.conf some command

/etc/doas.confの設定に従って、現在のユーザーの実行が許可されているかsome commandどうか(および実行するには、ユーザーにパスワードの入力を求めるメッセージが表示されているかどうか)を通知します。

「スーパーユーザー」の観点からは、doasuserIDに切り替えてからdoas -C上記のように実行して権限を確認する必要があることを意味します。

sudoそして別のツールなので、doas構成を理解していないのは驚くべきことではありません(その逆も同様です)。特定のシステムでは、実際には1つだけを使用する必要があります。sudodoas

答え2

私が質問を理解している限り、doas次のプログラムがありますsudo。ユーザーがroot権限を持っていることを確認するために使用できる簡単なコマンドは次のとおりです(シェルスクリプトで)。

if [ "$(id -u)" != "0" ]; then
    # the user is not root
fi

上記と同じコマンドをsudo、またはで使用できますdoas

説明する: id実際の有効なユーザーとグループIDを印刷するために使用されるコマンド。特にid -u有効なユーザーIDのみが印刷されます。ユーザーにroot権限がある場合、有効IDはです0

関連情報