debería usar sudo o simplemente su root en la administración del servidor?

8

¿Qué enfoque es mejor?

Para el uso de escritorio, parece que sudo es mejor ya que:

  • Puedo tener un historial más consistente como usuario normal
  • No necesito recordar dos contraseñas, lo cual es especialmente cierto cuando no hago cosas administrativas regularmente.
  • No es necesario crear una cuenta raíz adicional en la instalación.

Pero acerca de la gestión del servidor?

En el servidor, por lo general, ya tiene una cuenta raíz creada y es probable que realice tareas administrativas con frecuencia. Entonces, las ventajas de sudo ya no parecen sostenerse.

Además, es fácil configurar su en la línea de comandos en la mayoría de las distribuciones, solo agregue el usuario al grupo de rueda. (Incluso puede pasar -G wheelcuando useradding.) Por lo tanto, la configuración de su se puede automatizar fácilmente en scripts de shell.

Pero para sudo? Primero debe agregar el usuario, que ejecutar de forma visudointeractiva. Esto es malo ya que no puede automatizarlo en scripts de shell.

(Bueno, puedes. Por ejemplo,

echo '%wheel    ALL=(ALL)   ALL' >> /tmp/sudoers.tmp
cp /etc/sudoers /etc/sudoers.old
visudo -c -f /tmp/sudoers.tmp &&  mv /tmp/sudoers.tmp /etc/sudoers

Pero al menos no es tan fácil).

Entonces, ¿cuál es tu opinión? Para un entorno de servidor, ¿cuál preferirá, sudo o su root?

debilitar
fuente
Esto debería ser un wiki, de lo contrario es probable que se cierre porque es demasiado subjetivo.
John Gardeniers
No creo que sea demasiado subjetivo. Tal como muestra la excelente respuesta de Raphink, en un entorno de múltiples usuarios, se prefiere sudo.
débil
No creo que sea una pregunta subjetiva en absoluto. No se trata de si te gusta el sudo o no, sino de si está adaptado para un uso u otro.
phaphink
Por cierto, también estoy un poco sorprendido por su visudo -ccomando, ya que creo que necesita visudo -c -fverificar un archivo específico.
phaphink
@Raphink sí, tienes toda la razón. He editado mi pregunta.
débil

Respuestas:

16

La cuenta raíz es necesaria en los servidores con seguridad, pero prefiero otorgar derechos de sudo, especialmente cuando hay varios usuarios en la máquina, y esto por varias razones:

  • No uso sudo solo para otorgar TODOS los derechos para TODOS los comandos, sino también para otorgar derechos específicos como usuario específico a comandos específicos.
  • Al asignar usuarios a grupos funcionales, puedo administrar sus derechos con estos grupos en sudoers en lugar de administrar usuarios individualmente.
  • los accesos a sudo se registran en auth.log de manera predeterminada, incluidos los usuarios que usaron sudo a qué hora.
  • sudo permite gestionar la configuración de varias máquinas con un solo archivo.
  • cada usuario mantiene su propia contraseña, por lo que no es necesario cambiar la contraseña raíz cuando un usuario se va.

En cuanto a administrarlo con scripts, las nuevas versiones de sudo admiten inclusiones, pero prefiero usar puppet y establecer clases que concatenan los contenidos de sudoers.

Puppet también se puede asociar con Augeas para administrar su archivo de sudoers.

Phaphink
fuente
3
De hecho, no he considerado un caso de usuarios múltiples. Tienes razón, aparentemente sudo es un ganador cuando hay varios usuarios. Pero para un solo usuario, todavía creo que su es suficiente. PD: Gracias por mencionar a la marioneta. Simplemente no he tenido conocimiento de una herramienta tan linda antes.
débil
Por cierto, si desea validar su archivo sudoers antes de implementarlo con puppet, tengo una función de validación a mano que lo hace.
phaphink
1
Al usar sudo, root ni siquiera necesita tener una contraseña válida, ya que solo necesita confiar en las contraseñas de los usuarios. Además de no necesitar cambiar la contraseña de root cuando alguien se va, también tiene una contraseña menos que se puede adivinar / romper / piratear.
Shannon Nelson el
@ShannonNelson Creo que mencionan el usuario raíz y la contraseña, ya que los servidores alquilados generalmente se proporcionan con estos.
AJP
1

Parece que te estás poniendo las cosas difíciles a ti mismo (cuando se trata de administrar / etc / sudoers). Un simple

echo '%wheel    ALL=(ALL)   ALL' >> /etc/sudoers

bastaría. Todo lo que hace Visudo es bloquear el archivo contra ediciones simultáneas y asegurarse de que el archivo aún se analiza correctamente.

rodjek
fuente
Utilizo visudo -c para verificar el archivo en caso de que algo esté mal. (Aunque no debería. Pero tal vez cuando estoy editando el sript extraño escribir algún carácter, o peor, incluir algún carácter especial no visible especial.) Pero estoy de acuerdo, su solución de una línea es suficiente.
débil