web-dev-qa-db-ja.com

postgresからrootに戻ることができません:無効であると判断したpostgresパスワードを強制的に入力します

Ubuntuにpostgresをインストールしましたが、postgresユーザーに切り替わりました。 psqlを開いてデータベースを作成し、ルートに戻すことにしました。しかし、それは私を許可しません:

Sudo su - 

結果は私に尋ねます

[Sudo] password for postgres:

取得するためだけに入力してみました

Sorry, try again

それから私は この答え を使用してpostgresパスワードを変更しようと決心しました:

ALTER USER postgres WITH PASSWORD 'postgres';

動作したように見えますが、rootに再度切り替えようとした後でも、それでもうまくいきません。

1
parsecer

あなたは2つのことを混乱させているようです:

  • postgresシステムユーザー
  • postgresSQLデータベースユーザー

両者の唯一の関係は、PostgreSQLのインストール時に、データベースユーザーpostgrespeer認証方法で認証されることです。 :データベースサーバーは、データベースユーザーpostgresとしてデータベースへのアクセスを要求しているsystemユーザーがpostgresとも呼ばれることを確認します。また、データベースサーバー自体はシステムユーザーpostgresとして実行されます。

データベースからシステムを変更することはできません。データベースアカウントにパスワードを指定しても、systemユーザーpostgresSudo権限がないという事実は変わりません。パスワードを無効にし、rootのみがデフォルトでパスワードを使用できるようにします(逆はできません)。

したがって、rootになりたい場合は、postgresシステムアカウントからこれを行うことはできません。これは良いことです。データベースサーバー(システムユーザーpostgresとしても実行されているプロセス)が危険にさらされた場合、エスカレーションする方法はありません。それからrootアクセスへ。

PostgreSQLのインストールに使用したアカウントに再度ログインするだけです。rootアカウント(通常はUbuntuでは実行されません)または(通常はUbuntuで実行されます)システムのインストール時に構成されたユーザーで、uid1000を使用してUbuntuで許可されます。デフォルトではSudo su -を実行します。

4
A.B