¿Cómo me vuelvo a agregar como usuario de sudo?

64

Instalé limpiamente Ubuntu 11.10 hoy, y luego instalé VirtualBox. Esto me obligó a agregarme al grupo vboxusers, y dado que 11.10 parece que ya no tiene una aplicación gráfica para agregar usuarios a un grupo, ejecuté el siguiente comando:

sudo usermod -G vboxusers stephane

Esto es un problema. Ahora veo lo que debería haber ejecutado en su lugar es:

sudo usermod -aG vboxusers stephane

El resultado final es que ya no estoy en los grupos en los que debería estar. Incluyendo cualquier grupo requerido para ejecutar "sudo". Cuando ejecuto cualquier comando como sudo ahora, obtengo lo siguiente:

$ sudo ls
[sudo] password for stephane: 
stephane is not in the sudoers file.  This incident will be reported.

¿Hay alguna forma de solucionar esto o necesito volver a instalarlo desde cero?

Stéphane
fuente

Respuestas:

65
  1. Durante el arranque, presione y mantenga presionada la tecla izquierda Shift , y debería ver el menú GRUB.

  2. Seleccione la entrada que contiene ( modo de recuperación ) y espere.

  3. Ahora debería presentarte un menú. Seleccionar:

    remount    Remount / read/write and mount all other file systems 
    

    y espere a que sus sistemas de archivos se monten con permisos de lectura / escritura, luego presione Enter.

    Si esta opción no aparece o no funciona, puede elegir la rootopción y utilizar el siguiente comando para montar la partición del sistema:

    mount -o remount /
    

    Puede verificar cuál es la partición de su sistema con el fsckcomando o mediante la visualización /etc/mtab.

    Después de ejecutar con éxito el comando de montaje (es decir, sin mensajes de error), continúe directamente con el paso 5 a continuación.

  4. Después de elegir la remountopción, vuelve a aparecer el menú. Seleccionar:

    root       Drop to root shell prompt
    
  5. Ahora ingrese uno de los siguientes comandos para volver a agregar su usuario al admingrupo (para Ubuntu 11.10 y versiones anteriores):

    adduser <USERNAME> admin
    

    o al sudogrupo (para Ubuntu 12.04 y posterior):

    adduser <USERNAME> sudo
    
  6. Reinicie y debería poder usarlo sudonuevamente.

htorque
fuente
3
Si no ve el menú "remontar", puede seleccionar "fsck" primero, remontará su sistema de archivos para leer / escribir. Después de eso, puede agregar su usuario en modo raíz.
Jiejing Zhang
1
Esto funcionó para mí, excepto que tuve que montar el sistema de archivos usando el comando mount -o remount,rw /.
Passuf
Esto funciona a la perfección. Además, parece un gran problema de seguridad. ¿Supongo que deberías desactivar esta función en máquinas sensatas? - Cuando estoy en modo de recuperación, nunca puedo reiniciar. Siempre tengo que usar reboot -f.
Romain Vincent
15

Si el inicio de sesión raíz está habilitado en su sistema, simplemente deje caer la terminal a través de Control+ Alt+ F1sin iniciar sesión en X. Inicie sesión como root y luego simplemente agregue el usuario deseado al admingrupo (para Ubuntu 11.10 y anterior):

adduser desired_user_name admin

Para Ubuntu 12.04 y posterior, agregue el usuario al sudogrupo:

adduser desired_user_name sudo

Si no habilitó el inicio de sesión de root, simplemente elija el modo de recuperación de Grub y luego intente root shell.

Root Shell

Montar el sistema de archivos como lectura-escritura:

mount -o rw,remount /

Después de eso, puede agregar nuevamente su usuario deseado al admin(o sudo) grupo.

corazon magico
fuente
¡Pero no puedo acceder a sudo desde mi usuario!
Jamie Hutber
7

He intentado varias combinaciones después de hacer lo mismo, ya que la opción de menú de remontaje parece no estar en 12.10. He intentado todo lo demás en esta publicación desde la raíz. El último fue

umount -a
mount -o -w /<path> /

Esto dio como resultado que el sistema de archivos todavía se ro debido a una configuración en fstab para arrancar ro en el error del sistema de archivos, creo, con la afirmación de que parecía ser ro después del montaje.

Finalmente lo logré con

mount -o rw,remount /

Aunque no estoy seguro de cómo esto es diferente del conjunto anterior de comandos.

Después de aplicar esta variación, agregar un usuario al grupo admin(11.10 y anterior) o sudo(12.04 y posterior) se realiza de la misma manera:

adduser username admin    # 11.10 and earlier
adduser username sudo     # 12.04 and later
Jodi
fuente
2

Antigua pregunta pero también me pasó a mí (Ubuntu 14.04).

No pude iniciar sesión en el modo de recuperación y obtener acceso a un shell raíz, como muchas respuestas aquí y en otras partes describen: el acceso al shell raíz desde GRUB parece estar protegido por contraseña.

Entonces resolví el problema de esta manera:

  1. arrancar en un dispositivo USB en vivo
  2. abrir una concha
  3. acceda al sistema de archivos HD Linux principal (puede encontrar su punto de montaje en la barra de direcciones del explorador de archivos GUI, generalmente después de CTRL-L). cden ello.
  4. editar el archivo etc/group(digamos con nano etc/groupo cualquier otra cosa)
  5. encuentra la línea "sudo". Debería verse comosudo:x:27:admin,bob,alice
  6. agregarse a la sudolínea, separados por comas

Por supuesto, esto implica que el archivo etc/sudoersaún mantiene la línea.

%sudo   ALL=(ALL:ALL) ALL

lo que significa que todos los miembros del grupo sudotienen control total. Primero verifica eso.

Trabajó sin incidentes.

kebs
fuente
0

Cometí el mismo error al agregar mi cuenta a un grupo (olvidé la -a). Tenía mi sistema instalado con el inicio de sesión raíz bloqueado, y mi cuenta era la única en la máquina.

La respuesta aceptada no me ayudó. Mientras arrancaba en modo de recuperación, todo lo que recibí fue un mensaje inútil

No se puede abrir el acceso a la consola, la cuenta raíz está bloqueada. Consulte la página del comando man sulogin (8) para obtener más detalles.
Presione ENTER para continuar

Después de presionar ENTER, el sistema arranca normalmente: no hay suerte de obtener acceso de root para solucionar el problema. Dejo esta respuesta en caso de que alguien termine en mis zapatos en este punto. Use lo siguiente solo si no puede acceder al modo de recuperación a través del menú Grub .

Un tutorial para obtener el shell raíz:

  1. Inicie en el menú de Grub y resalte (¡pero no presione Enter!) La opción de inicio normal (¡por defecto, no una recuperación!).
  2. Presione e. Grub mostrará un editor de línea de comandos con varias líneas, cada una de las cuales puede parecer desconocida si no intimidante. No se preocupe, los cambios que realice no se guardan de forma permanente.
  3. Encuentra la línea que lee linux ... ro .... Esta es la línea de comando del núcleo. Vuelva a colocar la roprenda con rw, para hacer que el sistema de ficheros raíz de lectura / escritura, y añadir otro parámetro de línea de comandos del kernel, init=/bin/sh. Esto le indica al núcleo que se ejecute en shlugar de /sbin/init. Al final, la línea debería verse así linux ... rw init=/bin/sh .... Nota: Puede sobrevivir incluso con el simple grub>aviso. Estaré encantado de explicar cómo, paso a paso, si todo lo demás falla para usted; solo deja un comentario a esta respuesta.
  4. Después del cambio, presione F10para usar los comandos del editor para iniciar el sistema (o lea las instrucciones sobre cómo iniciar justo debajo de la ventana del editor, si su Grub está compilado de manera diferente). Obtendrá el indicador de shell raíz, ya que el proceso de inicio se ejecuta como PID 1 con la identidad raíz.
  5. Realice el cambio que desea realizar, por ejemplo usermod -a -Gadm,sudo YOURUSERID. Confirme con id -a YOURUSERIDque ha recuperado su membresía sudo. En caso de que aparezca el error "comando no encontrado", use /sbin/usermody /bin/id.
  6. No puede apagar o reiniciar el sistema limpiamente en este momento. reboot, halto poweroffno funcionará, y exitdesde el shell dará lugar a un kernel panic, ya que no se espera que el proceso PID 1 simplemente salga. Entonces, los siguientes dos comandos que debe emitir son:

    sync
    exec /sbin/init
    

    syncen caso de que algo salga mal, para guardar todos los cambios en el disco y execreemplazar el shell con el real init(que puede ser systemd, upstart o System V init, pero siempre se llama /sbin/init). Lo más probable es que el sistema continúe arrancando normalmente (sin modo de recuperación).

  7. Inicie sesión y reinicie el sistema una vez, por ejemplo, sudo rebootdebería haber recuperado su privilegio de sudo. Se recomienda reiniciar, ya que (aunque muy raramente) initse pueden pasar parámetros adicionales durante un arranque normal, y eso no lo hicimos. En caso de que execfalle, simplemente reinicie la máquina y deje que arranque normalmente. Todos los sistemas de archivos de diario modernos como ext4, xfs y btrfs se recuperan rápidamente (unos segundos para una verificación de diario como máximo, si se synceditan antes del reinicio), y estará listo.

Un poco de trasfondo

Hubo una discusión sobre el informe de errores de Debian sobre este mismo problema, y, hasta donde sé, se decidió que era una característica y no un error, que considero que fue un error. Después de haber estado en este negocio durante 25 años, no puedo evitar estar totalmente en desacuerdo con el argumento de Michael Biebl en el mensaje # 31 en ese hilo:

Considere esto: tiene una computadora portátil con una cuenta raíz bloqueada. Por defecto, el cargador de arranque de grub genera una entrada de arranque para el modo de rescate. Por lo tanto, incluso si bloquea la BIOS para no permitir el arranque desde CD-Rom o USB, y protege la contraseña de grub, alguien podría acceder fácilmente a la raíz si deja la computadora portátil desatendida por un momento.

La objeción correcta, IMO, si no lo suficientemente general, fue dada en el mensaje # 70 por Felipe Sateler:

Para muchas (¿la mayoría?) Computadoras, el acceso físico significa que el juego se pierde en términos de seguridad, ya que puede simplemente desmontar la caja y obtener el disco duro.

Esto es cierto especialmente para la computadora portátil, mencionada en el argumento de Michael: si la deja desatendida por un momento, y alguien está detrás de sus datos, la computadora portátil simplemente desaparecerá para nunca volver a ser vista. Y para cualquier máquina, no "muchos" o "la mayoría", incluso aquellos atornillados a 8 puntos en un estante, tan pronto como el atacante tenga acceso físico a la máquina, el juego realmente ha terminado.

kkm
fuente