私は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
のパスワードですか?どれも知りません。これに対する標準的な回避策はありますか?
postgres
としてログインする場合、パスワードなしでSudo
にアクセスできます。
Sudo -iu postgres
-i
ログインシェルを起動します。
警告:質問は、パーソナルサーバーを使用していることを示唆しています。そうでない場合、メイン管理者ではない場合は、メイン管理者からの指示がない限り、rootユーザーのシェルを想定しないでください
%wheel ALL=(ALL) NOPASSWD: ALL
したがって、user123ユーザーは「ホイールグループ」に属し、sudoers fileは、ALL
コマンドにパスワードを必要としない(ALL)
ユーザーとしてALL
ドメイン間で無制限のアクセスをwheelグループのメンバーに許可します。
ログインが機能していることはわかっているので、オプションが制限されることはありません。 postgresまたはrootのパスワードを知っている必要はありません。あなたは簡単にできます:
$ Sudo -iu postgres
質問に示されているように、「ユーザーをsu
またはsu -
に置き換える」ことができない理由は、sudoersファイルがsu
コマンドに影響を与えないためです。
引数なしまたはダッシュのみのsu
コマンドは、デフォルトでrootになるため、rootユーザーのパスワードの入力を求められます。これは予想される動作です。名前sudoersが示すように、sudoersファイルはSudo
コマンドにのみ特権を付与します。
表示されているように、rootパスワードを忘れています。次を使用してルートシェルを取得できます。
$ Sudo -i
[root@local ~]#
で管理を再開します
2つのステップ:
$ Sudo -i
# su - postgres
rootなので、パスワードなしでsu
を使用できます。これらを組み合わせて
$ Sudo su - postgres