Użytkownicy PostgreSQL domyślnie uwierzytelniają peer na gniazdach unix, gdzie użytkownik unix musi być taki sam jak użytkownik PostgreSQL. Więc ludzie często używają su
lub sudo
stają się postgres
superużytkownikami.
Często widzę ludzi używających konstrukcji takich jak:
sudo su - postgres
zamiast
sudo -u postgres -i
i zastanawiam się dlaczego. Podobnie widziałem:
sudo su - postgres -c psql
zamiast
sudo -u postgres psql
Bez czołowych sudo
w su
wersjach będzie jakiś sens, jeśli były na starej platformie bez sudo
. Ale dlaczego miałbyś używać systemu UNIX lub Linux mniej niż prehisoryczny sudo su
?
postgresql
shell
sudo
su
Craig Ringer
źródło
źródło
Odpowiedzi:
Zapomnieć
sudo su
Nie ma żadnych korzyści z używania
sudo su
, jest to anachroniczny nawyk, od kiedy ludzie byli przyzwyczajeni do używaniasu
. Ludzie zaczęli halsowaćsudo
z przodu, gdy dystrybucje Linuksa przestały ustawiać hasło roota i stworzyłysudo
jedyny sposób dostępu do konta roota. Zamiast zmieniać swoje przyzwyczajenia, po prostu wykorzystalisudo su
. (Byłem jednym z nich do niedawna, kiedy używanie pudełek zsudoers
konfiguracjami zmusiło mnie do zmiany nawyku).Posługiwać się
sudo -u
sudo -u postgres -i
Preferowana jest powłoka logowaniasudo su - postgres
. Nie wymaga, aby użytkownik miał dostęp do konta root/etc/sudoers
, wystarczy jedynie prawo do zostania użytkownikiempostgres
. Pozwala także wymusić lepszą kontrolę dostępu.Do wykonania polecenia
jest lepszy od alternatywy:
w tym, że nie musisz podwójnie usuwać cudzysłowów i innych metaznaków powłoki, a także innych zalet bezpieczeństwa, które nie wymagają rootowania. Prawdopodobnie przypadkowo wylądujesz pisząc:
czasami, co nie działa poprawnie.
Wreszcie, znacznie łatwiej jest ustawić zmienne środowiskowe
sudo
, npniż przez
su
. (TutajPATH
ustawienie jest wymagane, abyinitdb
można było znaleźć prawidłowypostgres
plik wykonywalny).Więc. Zapomnij, że
su
polecenie istnieje. Już go nie potrzebujesz. Aby zerwać z nałogiem, użyj aliasu na coś, co wydrukuje błąd. (Niektóre skrypty inicjujące i instalacyjne pakietu nadal używają,su
więc nie można go usunąć).Zobacz też:
źródło