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 混乱
- su = 代替ユーザー
- sudo=他のユーザーによるコマンドの実行
質問に記載されているようにユーザーを使用しsu
たり「ユーザーを交換」したりできない理由は、sudoersファイルがコマンドに影響を与えないためです。su -
su
パラメーターがないかダッシュのみを持つコマンドのsu
デフォルト値は次のとおりです。根、ルートパスワードの入力を求められます。これは予想される動作です。名前が示すようにSudoersつまり、sudoers ファイルはsudo
コマンドにのみ許可を与えます。
ルートシェル、パスワードを紛失
ルートパスワードを忘れてしまったようです。次のコマンドを使用してルートシェルをインポートできます。
$ sudo -i
再制御できるようにする:[root@local ~]#
答え3
2つのステップ:
$ sudo -i
# su - postgres
〜のように根su
、パスワードなしで使用できます。また、これを組み合わせることができます
$ sudo su - postgres