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ć sudoz przodu, gdy dystrybucje Linuksa przestały ustawiać hasło roota i stworzyły sudojedyny 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 sudoerskonfiguracjami zmusiło mnie do zmiany nawyku).
Posługiwać się sudo -u
sudo -u postgres -iPreferowana 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 PATHustawienie jest wymagane, aby initdbmożna było znaleźć prawidłowy postgresplik wykonywalny).
Więc. Zapomnij, że supolecenie 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ą, suwięc nie można go usunąć).
Zobacz też: