ウェブサイト検索

パスワードなしで別のユーザー アカウントに切り替える (su) 方法


このガイドでは、パスワードを必要とせずに別のユーザー アカウントまたは特定のユーザー アカウントに切り替える方法を説明します。たとえば、postgres というユーザー アカウント (デフォルトの PostgreSQL スーパーユーザー システム アカウント) があり、すべてのユーザー (通常は PostgreSQL データベースとシステム管理者)postgres というグループ内のユーザーは、パスワードを入力せずに su コマンドを使用して postgres アカウントに切り替えます。

デフォルトでは、root ユーザーのみがパスワードを入力せずに別のユーザー アカウントに切り替えることができます。他のユーザーは、切り替えるユーザー アカウントのパスワードの入力を求められます (または、sudo コマンドを使用している場合は、パスワードの入力を求められます)。正しいパスワードを入力しないと、次のスクリーンショットに示すように、「認証に失敗しました」エラーが表示されます。

上記の問題を解決するには、以下に示す 2 つの解決策のいずれかを使用できます。

1. PAM認証モジュールの使用

PAM (プラグイン可能な認証モジュール) は、最新の Linux オペレーティング システムにおけるユーザー認証の中核です。特定のグループのユーザーがパスワードなしで別のユーザー アカウントに切り替えられるようにするには、/etc/pam.d/susu コマンドのデフォルトの PAM 設定を変更します。強力な>ファイル。

vim /etc/pam.d/su
OR
sudo vim /etc/pam.d/su

次のスクリーンショットに示すように、「十分な認証 pam_rootok.so」 の後に次の設定を追加します。

auth       [success=ignore default=1] pam_succeed_if.so user = postgres
auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

上記の設定では、最初の行でターゲット ユーザーが postgres かどうかを確認し、そうである場合、サービスは現在のユーザーを確認します。それ以外の場合、default=1 行はスキップされます。そして通常の認証手順が実行されます。

auth       [success=ignore default=1] pam_succeed_if.so user = postgres

次の行は、現在のユーザーがグループ postgres に属しているかどうかを確認し、yes の場合、認証プロセスは成功したとみなされ、結果として十分な結果が返されます。それ以外の場合は、通常の認証手順が実行されます。

auth       sufficient   pam_succeed_if.so use_uid user ingroup postgres

ファイルを保存して閉じます。

次に、su するユーザー (例: aaronk) を、パスワードなしでアカウント postgres にグループ postgres に追加します。 usermod コマンドを使用します。

$sudo usermod -aG postgres aaronk

次に、ユーザー aarnk として postgres アカウントに su してみます。次のスクリーンショットに示すように、パスワードの入力を求められることはありません。

su - postgres

2. Sudoers ファイルの使用

sudoers ファイルに変更を加えることで、パスワードを必要とせずに別のユーザーに su することもできます。この場合、別のユーザー アカウント (postgres など) に切り替えるユーザー (aaronk など) は、sudoers ファイルまたは sudo グループに含まれている必要があります。 sudo コマンドを呼び出すことができます。

sudo visudo

次に、次のスクリーンショットに示すように、行 “%sudo ALL=(ALL:ALL) ALL ” の下に次の構成を追加します。

aaronk ALL=NOPASSWD: /bin/su – postgres

ファイルを保存して閉じます。

ここで、ユーザー aarnk としてアカウント postgressu してみます。シェルはパスワードの入力を求めるプロンプトを表示しません。

sudo su - postgres

それは今のところすべてです!詳細については、PAM 手動エントリ ページ (man pam.conf) およびsudo コマンド のページ (man sudo) を参照してください。

man pam.conf
man sudo