「su」はパスワードは不明ですが、「パスワードなし」の「ホイール」状態にある場合です。

「su」はパスワードは不明ですが、「パスワードなし」の「ホイール」状態にある場合です。

FreeBsd 11を使用しています。グループに属するユーザー「user123」がありますホイールそしてホイールすでに%wheel ALL=(ALL) NOPASSWD: ALLあります/usr/local/etc/sudoers

ルートパスワードがわかりません。しかし、sudoなしで「sudo」を実行できます。

Postgresqlをインストールし、「Service Start」で実行しました。

さて、postgresqlユーザーとしてログインしてデータベースなどを作成したいと思います。

$ su postgres
Password:


# or

$ su - postgres
Password:

しかし、パスワードがわからない。

これはユーザーのパスワードですかroot、それともユーザーのパスワードですかpostgres?私はそれらのどれも知らない。これに対する標準的な解決策はありますか?

答え1

postgresパスワードなしでログインしてアクセスするには、次の手順を実行します。sudo

sudo -iu postgres

-iログインシェルを起動します。

答え2

警告:この質問は、あなたがプライベートサーバーを使用していることを示します。それ以外の場合、デフォルト管理者でない場合は、デフォルト管理者が指示しない限り、root ユーザーのシェルを想定しないでください。


sudoers: "wheelset" 設定

%wheel ALL=(ALL) NOPASSWD: ALL

だからあなたのユーザー 123ユーザーは「ホイールグループ」に属し、Sudoersこのファイルは、コマンドのパスワードを必要としないユーザーで、ドメイン全体にわたってホイールグループのメンバーにALL無制限のアクセス権を付与します。(ALL)ALL

私たちはあなたが有効なログインを持っていることを知っているので、あなたのオプションは制限されません。パスワードを知っていますポストグレスでも、必要ありません。単に次のことができます。

$ sudo -iu postgres


su, sudo, sudoers 混乱

  1. su = 代替ユーザー
  2. sudo=他のユーザーによるコマンドの実行

質問に記載されているようにユーザーを使用しsuたり「ユーザーを交換」したりできない理由は、sudoersファイルがコマンドに影響を与えないためです。su -su

パラメーターがないかダッシュのみを持つコマンドのsuデフォルト値は次のとおりです。、ルートパスワードの入力を求められます。これは予想される動作です。名前が示すようにSudoersつまり、sudoers ファイルはsudoコマンドにのみ許可を与えます。


ルートシェル、パスワードを紛失

ルートパスワードを忘れてしまったようです。次のコマンドを使用してルートシェルをインポートできます。

$ sudo -i

再制御できるようにする:[root@local ~]#

答え3

2つのステップ:

$ sudo -i
# su - postgres

〜のようにsu、パスワードなしで使用できます。また、これを組み合わせることができます

$ sudo su - postgres

関連情報