Los usuarios de PostgreSQL autentican entre pares en sockets de Unix de forma predeterminada, donde el usuario de Unix debe ser el mismo que el usuario de PostgreSQL. Entonces, la gente usa con frecuencia suo se sudoconvierte en postgressuperusuario.
A menudo veo personas que usan construcciones como:
sudo su - postgres
más bien que
sudo -u postgres -i
y me pregunto por qué Del mismo modo, he visto:
sudo su - postgres -c psql
en lugar de
sudo -u postgres psql
Sin el líder, sudolas suversiones tendrían sentido si estuvieras en una plataforma antigua sin ella sudo. Pero, ¿por qué usaría UNIX o Linux menos que prehispánico sudo su?
                    
                        postgresql
                                shell
                                sudo
                                su
                                
                    
                    
                        Craig Ringer
fuente
                
                fuente

Respuestas:
Olvidar
sudo suEl uso no tiene ningún beneficio
sudo su, es un hábito anacrónico de cuando la gente estaba acostumbrada a usarsu. La gente comenzó a virarsudocuando las distribuciones de Linux dejaron de establecer una contraseña de root e hicieronsudola única forma de acceder a la cuenta de root. En lugar de cambiar sus hábitos, simplemente lo usabansudo su. (Fui uno de ellos hasta hace relativamente poco cuando el uso de cajas consudoersconfiguraciones me obligó a cambiar mi hábito).Utilizar
sudo -uPara un shell de inicio de sesión,
sudo -u postgres -ies preferiblesudo su - postgres. No requiere que el usuario tenga acceso de root/etc/sudoers, solo necesita el derecho de convertirse en usuariopostgres. También le permite aplicar mejores controles de acceso.Para ejecutar comandos
es superior a la alternativa:
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:
a veces, que no funcionará correctamente.
Finalmente, es mucho más fácil establecer variables de entorno mediante
sudo, por ejemplo,que a través de
su. (Aquí, laPATHconfiguración es necesaria para queinitdbpueda encontrar elpostgresejecutable correcto ).Asi que. Olvida que el
sucomando 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,supor lo que no puede eliminarlos).Ver también:
fuente