visudoを設定してもsudoコマンドを実行すると、まだパスワードの入力を求められます。

visudoを設定してもsudoコマンドを実行すると、まだパスワードの入力を求められます。

SSHを介してrsyncを使用してリモート展開を構成しているため、パスワードなしでsudoコマンドを実行する必要があります。

これは私の視覚的です。

# Allow user to execute specified commands without password
Cmnd_Alias USER_SERVICES = /bin/systemctl reload nginx, /usr/sbin/nginx
-t
[user] ALL=(ALL) NOPASSWD:USER_SERVICES

この設定では、パスワードプロンプトなしで指定されたコマンド(入力されたコマンド)を手動で実行できることを確認できますが、スクリプトファイル(下図)でコマンドを実行するたびにパスワードの入力を求められます。

#! /bin/bash

...
sudo systemctl reload nginx
...

この場合、パスワードプロンプトを回避する方法は?

答え1

これら2つのコマンドは同じではsystemctl reload nginxありません。/bin/systemctl reload nginx1つ目は環境変数に含まれるディレクトリに依存しPATH、2つ目は環境変数に含まれるディレクトリには依存しません。

このsudoersファイルを使用すると使用できるため、/bin/systemctl reload nginxこのファイルを使用する必要があります。

関連情報