「admin」ユーザーにはSSHセッションを許可しますが、「root」ユーザーにはSSHセッションを許可しないように構成されたLinux(debianベース)サーバーがあります。両方のアカウントは同じパスワードを共有するため、何とかリンクされます。
管理者としてSSHセッション中に「root」ユーザーに切り替えない限り、コマンドを実行するには「sudo」が必要です。
システムの起動時にも時々実行する必要があるいくつかのサービスがあります。私は現在、プライベート/公開鍵メカニズムを使用してサーバーからリモートでコマンドを実行しています。いくつかのコマンドは手動で入力され、他のコマンドは私が実行したシェルスクリプトでした。現在のコマンドがsudoを使用している場合、サーバーはまだパスワードを要求します。
Q:パスワードを入力せずに「admin」ユーザーとしてリモートでそれを実行するにはどうすればよいですか? sudoの要件を満たすためにプライベート/公開キーを使用できますか?それとも、ユーザー「root」でシェルスクリプトを起動する方法はありますか?
sudoを使ってパスワード入力を避けることはできますか?そうでなければ、私のような状況には他にどのようなオプションがありますか?
ベストアンサー1
特定のコマンドに対してパスワードをスキップするようにsudoに指示できます。
例えば/etc/sudoers
archemar ALL = (www-data) NOPASSWD: /bin/rm -rf /var/www/log/upload.*
これにより、以下を使用できます。
sudo -u www-data /bin/rm -rf /var/www/log/upload.*
パスワードのないArchemarを使って。
気づく
sudo -u www-data rm -rf /var/www/log/upload.*
(*)rm
のため動作しません(パスワードを求めます)。/bin/rm
編集するにはコマンドを/etc/sudoers
使用してください。visudo
高度なレベルに達すると/etc/sudoers.d
。
(*)最新のオペレーティングシステム(2022年頃のredhat 7.x)のこれらの変更により、rm
パスが一致した場合に使用できます。/bin/rm
sudoers.conf
rm