Antecedentes
Sé que la diferencia entre su -
, sudo su -
y sudo <command>
:
su -
- cambia el usuario a root, requiere la contraseña de rootsudo su -
- cambia el usuario a root, solo requiere la contraseña del usuario actualsudo <command>
- otorga acceso a la raíz solo para un comando específico; requiere solo la contraseña del usuario actual
Mi pregunta es sobre si el uso sudo su -
es o no una práctica segura en un entorno de producción.
Algunos pensamientos:
Parece que permitir
sudo su -
plantea un riesgo de seguridad al hacer que el acceso a la cuenta raíz dependa de las contraseñas de los usuarios individuales. Por supuesto, esto podría mitigarse aplicando una estricta política de contraseñas. No creo quesu -
sea mejor, ya que requeriría que el administrador comparta la contraseña raíz real.Permitir que los usuarios cambien completamente a la cuenta raíz hace que sea más difícil hacer un seguimiento de quién realiza cambios en el sistema. He visto casos en mi trabajo diario en los que múltiples usuarios tienen
sudo su -
acceso. Lo primero que hacen los usuarios al iniciar sesión en el sistema es ejecutarlosudo su -
, antes de comenzar a trabajar. Entonces, un día algo se rompe y no hay trazabilidad de quién se ejecutórm -rf *
en el directorio incorrecto.
Preguntas
Dadas las preocupaciones anteriores, ¿alguna vez es una buena idea permitir que los usuarios lo usen sudo su -
o incluso lo su -
hagan?
¿Hay alguna razón por la que un administrador configuraría cuentas de usuario para sudo su -
o en su -
lugar de sudo <command>
(aparte de la pereza)?
Nota: Estoy ignorando el caso en el que el usuario se está ejecutando sudo su -
o si su -
el Administrador necesita realizar cambios en el sistema, cuando el acceso ssh directo se ha deshabilitado para el usuario root.
sudo su -
es bastante tonto ya quesudo -i
hace esencialmente lo mismo, con menos pulsaciones de teclas.sudo bash
simplemente para evitar algunos de los gastos generales de inicio de sesión. Sin embargo, después de reflexionar, eso puede no evitar tanto como me imagino.sudo -s
.Respuestas:
Veamos tus casos:
ejecutará a / bin / sh como usuario root utilizando el entorno root. La contraseña de root es necesaria y el registro PUEDE registrarse dependiendo de la configuración de syslog (por lo general es /var/log/auth.log).
ejecutará shell como usuario root utilizando el conjunto actual de variables de entorno (con algunas excepciones como se definirían en el archivo sudoers). La contraseña es la contraseña del usuario de origen y NO la contraseña del usuario raíz. sudo generalmente se registra.
ejecutará un shell (generalmente / bin / sh) como usuario root configurando el entorno como usuario root. Esto requerirá la contraseña del usuario fuente y generalmente se registrará.
A veces es necesario tener el entorno raíz sobre su propio entorno, por lo tanto su - es un método apropiado. Recuerde que sudo seguirá registrando el uso del comando shell en cualquier caso.
fuente
No, no en mi opinion. No tiene ninguna ventaja práctica sobre permitirles su, excepto que no necesitan la contraseña de root para hacerlo.
Como siempre desactivo el inicio de sesión raíz, su es necesario y, en general, hace que el servidor sea más seguro.
fuente
El PO parece proporcionar un montón de buenas razones para no permitir / alentar usos generales para correr
sudo bash
osudo su -
desde que les cambia a un modo omnipotente las partes internas de los cuales son por lo general no conectado. Y podrían olvidar que están en ese modo y hacer algo ... lamentable.Ergo, parece más seguro tener la mayoría de los usuarios restringidos a la ejecución
sudo on/a/particular/command/
o la lista de comandos. De esa manera, se registra cada comando sudo.¿Encontrará excepciones en la práctica? Seguro. ¿Es la reacción a tales excepciones volver a la práctica perezosa de no restringido?
sudo su
Probablemente no.fuente