“su”當密碼未知但你在“輪子”中“無密碼”時
我在 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)
無需密碼的使用者授予ALL
wheel 組的成員。我們知道您有一個有效的登錄名,因此您的選擇不受限制。不需要知道postgres甚至root的密碼。您可以簡單地:
$ sudo -iu postgres
su, sudo, sudoers 混亂
- su = 替代使用者
- sudo = 以另一個使用者身份執行命令
您不能用
su
或su -
問題中所示的“替換使用者”的原因是因為 sudoers 文件對su
命令沒有影響。
su
不帶參數或僅破折號的命令預設為root,因此系統會提示您輸入 root 使用者密碼。這是預期的行為:正如名稱sudoers所暗示的,sudoers 文件僅授予sudo
命令權限。root shell,密碼失去
看來您忘記了root密碼。您可以使用以下命令獲取 root shell:
$ sudo -i
讓您重新掌控:
[root@local ~]#