Dimenticare sudo su
Non vi è alcun vantaggio nell'uso sudo su
, è un'abitudine anacronistica da quando le persone erano abituate ad usare su
. Le persone hanno iniziato a virare sudo
di fronte quando le distribuzioni Linux hanno smesso di impostare una password di root e hanno fatto sudo
l'unico modo per accedere all'account di root. Invece di cambiare le loro abitudini, hanno appena usato sudo su
. (Sono stato uno di loro fino a tempi relativamente recenti quando l'uso di scatole con sudoers
configurazioni mi ha costretto a cambiare abitudine).
Uso sudo -u
Per una shell di accesso, sudo -u postgres -i
è preferibile sudo su - postgres
. Non richiede che l'utente abbia accesso come root /etc/sudoers
, hanno solo bisogno del diritto di diventare utente postgres
. Inoltre, consente di applicare controlli di accesso migliori.
Per l'esecuzione del comando
sudo -u postgres psql -c "SELECT 1"
è superiore all'alternativa:
sudo su - postgres -c "psql -c \"SELECT 1\""
in quanto non è necessario evitare doppie virgolette e altri metacaratteri della shell, nonché gli altri vantaggi di sicurezza di non aver bisogno di root. Probabilmente finirai per caso a scrivere:
sudo su - postgres -c psql -c "SELECT 1"
a volte, che non funzionerà correttamente.
Infine, è molto più semplice impostare variabili di ambiente tramite sudo
, ad es
sudo PATH=/usr/pgsql-9.3/bin:$PATH -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/testcluster
che via su
. (Qui PATH
è necessaria l' impostazione per initdb
poter trovare il postgres
file eseguibile corretto ).
Così. Dimentica che il su
comando esiste. Non ne hai più bisogno. Per rompere l'abitudine, alias a qualcosa che stamperà un errore. (Alcuni script di installazione di pacchetti e init continuano a essere utilizzati, su
quindi non è possibile rimuoverli).
Guarda anche: