web-dev-qa-db-ja.com

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

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

Rootのパスワードがわかりません。ただし、「Sudo」はなくても実行できます。

Postgresqlをインストールし、「サービス開始」を介して実行しました。

次に、postgresqlユーザーとしてログインし、データベースまたはその他のものを作成します。

$ su postgres
Password:


# or

$ su - postgres
Password:

しかし、私はパスワードを知りません。

これはユーザーrootまたはユーザーpostgresのパスワードですか?どれも知りません。これに対する標準的な回避策はありますか?

5
Dorion

postgresとしてログインする場合、パスワードなしでSudoにアクセスできます。

Sudo -iu postgres

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

18
muru

警告:質問は、パーソナルサーバーを使用していることを示唆しています。そうでない場合、メイン管理者ではない場合は、メイン管理者からの指示がない限り、rootユーザーのシェルを想定しないでください


sudoers: 'ホイールグループ'設定

%wheel ALL=(ALL) NOPASSWD: ALL

したがって、user123ユーザーは「ホイールグループ」に属し、sudoers fileは、ALLコマンドにパスワードを必要としない(ALL)ユーザーとしてALLドメイン間で無制限のアクセスをwheelグループのメンバーに許可します。

ログインが機能していることはわかっているので、オプションが制限されることはありません。 postgresまたはrootのパスワードを知っている必要はありません。あなたは簡単にできます:

$ Sudo -iu postgres


su、Sudo、sudoersの混乱

  1. su =代理ユーザー
  2. Sudo =別のユーザーとしてのexecコマンド

質問に示されているように、「ユーザーをsuまたはsu -に置き換える」ことができない理由は、sudoersファイルがsuコマンドに影響を与えないためです。

引数なしまたはダッシュのみのsuコマンドは、デフォルトでrootになるため、rootユーザーのパスワードの入力を求められます。これは予想される動作です。名前sudoersが示すように、sudoersファイルはSudoコマンドにのみ特権を付与します。


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

表示されているように、rootパスワードを忘れています。次を使用してルートシェルを取得できます。

$ Sudo -i

[root@local ~]#で管理を再開します

1
Alxs

2つのステップ:

$ Sudo -i
# su - postgres

rootなので、パスワードなしでsuを使用できます。これらを組み合わせて

$ Sudo su - postgres
0
Simon Richter