Olvidar sudo su
El uso no tiene ningún beneficio sudo su
, es un hábito anacrónico de cuando la gente estaba acostumbrada a usar su
. La gente comenzó a virar sudo
cuando las distribuciones de Linux dejaron de establecer una contraseña de root e hicieron sudo
la única forma de acceder a la cuenta de root. En lugar de cambiar sus hábitos, simplemente lo usaban sudo su
. (Fui uno de ellos hasta hace relativamente poco cuando el uso de cajas con sudoers
configuraciones me obligó a cambiar mi hábito).
Utilizar sudo -u
Para un shell de inicio de sesión, sudo -u postgres -i
es preferible sudo su - postgres
. No requiere que el usuario tenga acceso de root /etc/sudoers
, solo necesita el derecho de convertirse en usuario postgres
. También le permite aplicar mejores controles de acceso.
Para ejecutar comandos
sudo -u postgres psql -c "SELECT 1"
es superior a la alternativa:
sudo su - postgres -c "psql -c \"SELECT 1\""
en el sentido de que no tiene que escapar las comillas y otros metacaracteres de shell, así como las otras ventajas de seguridad de no necesitar root. Probablemente aterrizarás accidentalmente escribiendo:
sudo su - postgres -c psql -c "SELECT 1"
a veces, que no funcionará correctamente.
Finalmente, es mucho más fácil establecer variables de entorno mediante sudo
, por ejemplo,
sudo PATH=/usr/pgsql-9.3/bin:$PATH -u postgres /usr/pgsql-9.3/bin/initdb -D /var/lib/pgsql/testcluster
que a través de su
. (Aquí, la PATH
configuración es necesaria para que initdb
pueda encontrar el postgres
ejecutable correcto ).
Asi que. Olvida que el su
comando existe. Ya no lo necesitas. Para romper el hábito, alias a algo que imprima un error. (Sin embargo, algunos scripts de configuración de paquetes y de inicio todavía se usan, su
por lo que no puede eliminarlos).
Ver también: