¿Cómo puedo agregar un nuevo usuario como sudoer usando la línea de comando?

820

Después de agregar un usuario usando adduser, no puedo verlo a través del Sistema> Administración> Usuarios y grupos a menos que cierre sesión y luego vuelva a iniciar sesión. ¿Eso es normal?

Además, ¿puedo configurar un usuario recién agregado como sudoer o tengo que cambiar eso solo después de agregarlo? ¿Cómo puedo hacer eso a través del shell?

Finalmente, ¿puedo eliminar el usuario original que se creó en la instalación inicial de Ubuntu, o este usuario es de alguna manera 'especial'?

David B
fuente

Respuestas:

1024

Simplemente agregue el usuario al sudogrupo :

sudo adduser <username> sudo

El cambio tendrá efecto la próxima vez que el usuario inicie sesión.

Esto funciona porque /etc/sudoersestá preconfigurado para otorgar permisos a todos los miembros de este grupo (no debería tener que hacer ningún cambio en esto):

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

Siempre que tenga acceso a un usuario que esté en los mismos grupos que su usuario "original", puede eliminar el antiguo.


Siendo realistas, también hay otros grupos de los que tu nuevo usuario debería ser miembro. Si configura el Tipo de cuenta de un usuario como Administrador en la Configuración de usuarios, se colocará en al menos todos estos grupos:

adm sudo lpadmin sambashare

Debido a que la configuración de su sistema puede variar, sugiero echar un vistazo a la salida de groups <username>para ver qué grupos están normalmente en uso.

ændrük
fuente
1
@Dziamid No estoy seguro de para qué es el sudogrupo. Vamos a averiguar.
ændrük
77
Tenga en cuenta que el admingrupo no existe en 12.04 LTS.
Ryan
18
La pregunta es sobre un usuario existente, pero si fuera para un nuevo usuario "sudo adduser <nombre de usuario> sudo" debería ir precedido de "sudo adduser <nombre de usuario>" . De lo contrario, aparece el mensaje de error "El usuario <nombre de usuario> no existe".
Peter Mortensen
99
Esto no funcionó para mí. Todavía no puedo usar sudo.
chovy
10
Tuve que volver a iniciar sesión para que funcione.
PeterM
193

yo hice

sudo usermod -a -G sudo <username>

como se recomienda aquí .

Leszek
fuente
28
el sudo grupal no existe
Aaron Esau
La única solución de trabajo aquí. Ubuntu 16
Makan Tayebi
55
Para un usuario existente, esta es la solución correcta. Debe marcarse como la respuesta.
Yokai
3
No olvides -amarcar o eliminarás a los usuarios de todos los grupos exceptosudo
RousseauAlexandre
@RousseauAlexandre absolutamente! lo más importante, especialmente si está tratando de agregarse a un grupo que no es sudo y es el único en la máquina con privilegios de sudo ...without -a you just removed yourself from the sudo group!
Timothy LJ Stewart
79

Abra el archivo sudoers: sudo visudoabrirá el /etc/sudoersarchivo en el editor definido en $EDITOR(probablemente GNU nano - configure la variable si no es lo que desea, por ejemplo, export EDITOR="nano"e intente sudo visudonuevamente).

Agregue la siguiente línea al final del archivo.

username ALL=(ALL) ALL   # Change the user name before you issue the commands

Luego realice WriteOut con Ctrl+ O. El editor le pedirá el nombre del archivo para escribir. El valor predeterminado será un archivo temporal que se utiliza visudopara verificar si hay errores de sintaxis antes de guardarlo en el sudoersarchivo real . Presione Enterpara aceptarlo. Salga del editor nano con Ctrl+ X.

¡Hecho!

Mithun Sreedharan
fuente
99
Sería desaconsejable agregar explícitamente un solo usuario al archivo sudoers en lugar de simplemente agregar ese usuario al grupo apropiado sudo.
Kzqai 05 de
3
con sudo visudo puede enviar a /etc/sudoers.tmp, al salir del editor sobrescribirá / etc / sudoers por sí mismo
Climbatize
1
y visudo verificará la sintaxis para asegurarse de que no haya errores
mchid
error de sintaxis si se usa esto.
jheriko
2
Las otras soluciones funcionan muy bien para sistemas operativos con un sudogrupo integrado , pero para el sistema ocasional sin un sudogrupo dedicado , esta solución funciona. La única recomendación que tengo es que es posible que desee evitar ponerse sudodentro del procedimiento, ya que es posible que aún no esté configurado. Fácil de solucionar haciendo su -y luego simplemente visudio. Esto funciona en Gentoo.
tresf
30

Tengo que agregar una cosa que estoy seguro de que mucha gente no entiende:

Una vez que ya haya hecho un adduser "username", aún puede regresar y hacer un adduser "username" sudo, y luego agregará a ese usuario al grupo correctamente.

En realidad no funcionará la primera vez como sudo adduser username sudo. Te dará un error. Lo que en resumen significa que primero debe crear la cuenta de usuario antes de poder agregarlos a un grupo.

TaunT406
fuente
11

Todos los miembros del grupo admin, en Ubuntu, por defecto tienen permitido usar sudo, por lo que la forma más fácil es agregar la cuenta de usuario al admingrupo.

Si no desea darle a la cuenta de usuario acceso completo a la raíz, debe editar el archivo / etc / sudoer con visudo (se asegura de que no tenga ningún error de sintaxis en el archivo y pierda la capacidad de sudo por completo) de alguna manera que especifique qué comandos puede ejecutar este usuario (o un nuevo grupo) como root.

El manual de sudoer le dará más información sobre esto. Puede especificar qué comandos permite que un usuario / grupo particular se ejecute como root.

txwikinger
fuente
1
¿Pensé que para eso estaba el wheelgrupo?
Marco Ceppi
@Marco, no estoy familiarizado con eso. ¿Puedes explicar un poco más?
ændrük
@MarcoCeppi, el grupo de ruedas se usó en algunos sistemas para restringir lo que los usuarios podrían usar su. Ubuntu utiliza sudoy el grupo de administración.
psusi
11

en CentOS, lo hago como root

echo ' username ALL=(ALL)   ALL' >> /etc/sudoers
jowan sebastian
fuente
10

El siguiente fragmento otorga acceso de root al nombre de usuario sin iniciar sesión explícitamente como root.

Asegúrese de que el usuario se agregue primero al grupo sudo. Probado en Ubuntu 16.04.1 LTS.

sudo adduser username sudo
sudo sh -c "echo 'username ALL=NOPASSWD: ALL' >> /etc/sudoers"
Sandeep
fuente
funciona esto en Ubuntu?
jowan sebastian
1
Sí, comprobado en Ubuntu 16.04
Sandeep
3
por qué no en una línea:useradd -m username --groups sudo
Aidan Melen