Ubuntu

無法從 postgres 返回到 root:強制輸入它認為無效的 postgres 密碼

  • January 31, 2021

我已經在 Ubuntu 上安裝了 postgres,它把我切換到了 postgres 使用者。我已經打開psql創建了一個數據庫,然後決定切換回 root。但是,它不允許我:

sudo su - 

結果它問我

[sudo] password for postgres:

我試圖進入只是為了得到

Sorry, try again

然後我決定嘗試使用這個答案更改 postgres 密碼:

ALTER USER postgres WITH PASSWORD 'postgres';

它似乎有效,但在嘗試再次切換到 root 後,它仍然不讓我。

看來您混淆了兩件事:

  • postgres系統使用者
  • postgresSQL 數據庫使用者

兩者之間的唯一關係是,在安裝 PostgreSQL 時,數據庫使用者postgres使用對身份驗證方法進行身份驗證:數據庫伺服器檢查請求訪問數據庫的系統使用者postgres是否也稱為數據庫使用者postgres。此外,數據庫伺服器本身以系統使用者身份執行postgres

無法從數據庫中更改系統。在數據庫帳戶上提供密碼不會改變系統使用者postgres沒有sudo權限的事實,並且肯定是禁用密碼,因此預設情況下只允許 root 使用它(但不能反過來)。

因此,如果您想成為root,則不能從postgres系統帳戶執行此操作,這是一件好事:如果數據庫伺服器(其程序也以系統使用者身份執行postgres)受到損害,將無法升級到root從它。

只需再次登錄您用於安裝 postgreSQL 的帳戶:直接登錄root帳戶(通常不在 Ubuntu 上完成)或(通常在 Ubuntu 上完成)在安裝系統時配置的使用者,使用 uid 1000,在 Ubuntu 上預設允許做sudo su -

引用自:https://serverfault.com/questions/999467