
Hasta ahora he encontrado cuatro formas diferentes de agregar un usuario al grupo sudoers y no todos los métodos funcionan en todos los sistemas. ¿Por qué tantas implementaciones diferentes? ¿Que es lo mejor? ¿Cuál es el estándar (es decir, funciona en la mayoría de los sistemas)?
Diferentes implementaciones:
- Agregar el usuario al grupo 'rueda'.
- Agregar el usuario al grupo 'sudo'.
- Editando el archivo /etc/sudoers
- Editando el archivo /etc/sudoers usando visudo
Respuesta1
Hay dos formas (principales) de autorizar a un usuario a ejecutar comandos como root mediante sudo:
- declarar que "Alice puede ejecutar comandos como root";
- Declare que "Alice es administradora de sistemas" y que "los administradores de sistemas pueden ejecutar comandos como root".
La forma de declarar "Alice es una administradora de sistemas" es convertirla en miembro del grupo de administradores de sistemas, pero no existe un nombre estándar para el grupo de administradores de sistemas (ni ninguna obligación de que exista un grupo de administradores de sistemas). Algunos sistemas Unix tradicionales tienen un grupo llamadowheel
, pero a menudo estar en el grupo rueda es sólo un requisito previo para convertirse en root, y el usuario también debe conocer la contraseña de root y ejecutar su
(así es como la usa BSD, en particular). Algunas distribuciones, como Ubuntu y Debian, incluyen un grupo llamado sudo
y una regla "los miembros del grupo sudo
pueden ejecutar el comando como root" en su configuración predeterminada.
Si /etc/sudoers
(o un archivo en /etc/sudoers.d
) contiene una línea como %sudo ALL=(ALL:ALL) ALL
, entonces puede convertir a un usuario en sudoer agregándolo al sudo
grupo ( adduser alice sudo
). El nombre sudo
no es mágico, sólo tienes que coincidir con la entrada en /etc/sudoers
.
Nunca edite /etc/sudoers
(o un archivo bajo /etc/sudoers.d
) directamente: si comete un error de sintaxis, se bloqueará el acceso de root. Utilice siempre visudo
para editar ese archivo. Para elegir el editor que visudo
se ejecuta, configure la VISUAL
variable de entorno (o EDITOR
, siempre que VISUAL
no esté configurada). En una máquina multiusuario, el uso visudo
tiene la ventaja adicional de que se encarga de bloquear en caso de que dos administradores editen el archivo al mismo tiempo.
Respuesta2
adduser username sudo
funciona para mí, pero luego uso Debian, que tiene un sudoers
archivo que por defecto otorga sudo
acceso sudo a todos los miembros del grupo.
Respuesta3
Porque Ubuntu
agregué <somefile>
at /etc/sudoers.d/
con la línea:
<user> ALL=(ALL:ALL) ALL
Usando el comando:
visudo -f /etc/sudoers.d/<somefile>
Se recomienda esto porque deja el /etc/suoders
archivo intacto y, por lo tanto, evita un conflicto (y la resolución manual posterior requerida) entre las actualizaciones. Ver:Por qué /etc/sodoers.d/
Respuesta4
Los métodos 2 y 4 funcionarán en casi todos los Linux. ¡Ni siquiera intentes usar 3 en un sistema que funcione! Puede dañar el sistema. El método 1 puede funcionar, pero no es necesario.
¿Por qué debería utilizar visudo en lugar de editar manualmente /etc/sudoers?
Una vez que tuve acceso root utilicé visudo para arreglar el archivo sudoers. ¿Por qué visudo? Porque ese es el programa que SE SUPONE QUE DEBES UTILIZAR. Sí, estoy un poco enojado, porque la persona que rompió este servidor debería haberlo sabido mejor. Visudo es un pequeño y encantador programa que comprueba la sintaxis del archivo sudoers antes de guardarlo, de modo que si haces algo monumentalmente estúpido lo sabrás antes de que se convierta en un problema y te impida volver al sistema como root.
http://lickthesalt.com/2009/07/06/fail-why-you-should-always-use-visudo/