Sudo

“su”當密碼未知但你在“輪子”中“無密碼”時

  • April 22, 2017

我在 FreeBsd 11 上。我有一個屬於組wheel的使用者“user123” ,而輪子在.%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 使用者的 shell


sudoers:“輪組”設置

%wheel ALL=(ALL) NOPASSWD: ALL

因此,您的user123使用者位於“wheel 組”中,並且您的sudoers文件將ALL跨域的無限制訪問權限作為(ALL)無需密碼的使用者授予ALLwheel 組的成員。

我們知道您有一個有效的登錄名,因此您的選擇不受限制。不需要知道postgres甚至root的密碼。您可以簡單地:

$ sudo -iu postgres


su, sudo, sudoers 混亂

  1. su = 替代使用者
  2. sudo = 以另一個使用者身份執行命令

您不能用susu -問題中所示的“替換使用者”的原因是因為 sudoers 文件對su命令沒有影響。

su不帶參數或僅破折號的命令預設為root,因此系統會提示您輸入 root 使用者密碼。這是預期的行為:正如名稱sudoers所暗示的,sudoers 文件僅授予sudo命令權限。


root shell,密碼失去

看來您忘記了root密碼。您可以使用以下命令獲取 root shell:

$ sudo -i

讓您重新掌控:[root@local ~]#

引用自:https://unix.stackexchange.com/questions/360332