GNU/Linux >> Linux の 問題 >  >> Linux

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

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

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

上記の問題を解決するには、以下の2つのソリューションのいずれかを使用できます。

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

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

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

「auth十分な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

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

次に、ユーザーを追加します(たとえば、 aaronk suしたいこと アカウントにpostgres グループへのパスワードなしpostgres usermodコマンドを使用します。

$sudo usermod -aG postgres aaronk

次に、suを試してください postgresへ ユーザーとしてのアカウントaaronk 、次のスクリーンショットに示すように、パスワードの入力を求められないようにする必要があります。

$ su - postgres

2。 Sudoersファイルの使用

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

$ sudo visudo

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

aaronk ALL=NOPASSWD: /bin/su – postgres

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

次に、suを試してください アカウントにpostgres ユーザーとしてaaronk 、シェルはパスワードの入力を求めるプロンプトを表示しないはずです:

$ sudo su - postgres

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

$ man pam.conf
$ man sudo
関連記事 :Linuxで「sudo」を設定するための10の便利なSudoers構成
Linux
  1. Linuxユーザーアカウントを手動で作成する方法

  2. UNIX / Linux :ユーザー アカウントをロックまたは無効にする方法

  3. LXC コンテナー ユーザー アカウントのパスワードを変更する方法

  1. Plesk に FTP アカウントを追加するにはどうすればよいですか?

  2. 初めてpostgresqlを設定するには?

  3. UNIX ユーザーの名前を変更するにはどうすればよいですか?

  1. パスワードなしで別のユーザーとしてスクリプトを実行するには?

  2. Linux で別のユーザーのコマンド履歴を表示するには?

  3. 別のユーザーとして ssh する方法