Zapomnieć sudo su
Nie ma żadnych korzyści z używania sudo su
, jest to anachroniczny nawyk, od kiedy ludzie byli przyzwyczajeni do używania su
. Ludzie zaczęli halsować sudo
z przodu, gdy dystrybucje Linuksa przestały ustawiać hasło roota i stworzyły sudo
jedyny sposób dostępu do konta roota. Zamiast zmieniać swoje przyzwyczajenia, po prostu wykorzystali sudo su
. (Byłem jednym z nich do niedawna, kiedy używanie pudełek z sudoers
konfiguracjami zmusiło mnie do zmiany nawyku).
Posługiwać się sudo -u
sudo -u postgres -i
Preferowana jest powłoka logowania sudo su - postgres
. Nie wymaga, aby użytkownik miał dostęp do konta root /etc/sudoers
, wystarczy jedynie prawo do zostania użytkownikiem postgres
. Pozwala także wymusić lepszą kontrolę dostępu.
Do wykonania polecenia
sudo -u postgres psql -c "SELECT 1"
jest lepszy od alternatywy:
sudo su - postgres -c "psql -c \"SELECT 1\""
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:
sudo su - postgres -c psql -c "SELECT 1"
czasami, co nie działa poprawnie.
Wreszcie, znacznie łatwiej jest ustawić zmienne środowiskowe sudo
, np
sudo PATH=/usr/pgsql-9.3/bin:$PATH -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/testcluster
niż przez su
. (Tutaj PATH
ustawienie jest wymagane, aby initdb
można było znaleźć prawidłowy postgres
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ż: