Entré por error
chsh -s /usr/bin
en lugar de
chsh -s /bin/bash
y ahora no puedo iniciar sesión en un shell raíz, ¿cómo inicio un bash shell como root manualmente?
sudo vipw
el trabajo?
Entré por error
chsh -s /usr/bin
en lugar de
chsh -s /bin/bash
y ahora no puedo iniciar sesión en un shell raíz, ¿cómo inicio un bash shell como root manualmente?
sudo vipw
el trabajo?
Respuestas:
Si bien la raíz no tiene acceso, un usuario en el grupo sudo aún puede ejecutar comandos privilegiados; parece que el error no está en sudo, sino en otra parte del sudo chsh
comando (por ejemplo, error chsh).
Como tal, su sudo aparentemente está funcionando.
El archivo passwd se puede editar con:
sudo vipw
Y el shell raíz cambió manualmente.
(primera línea de /etc/passwd
usualmente)
root:x:0:0:root:/root:/bin/bash
De hombre vipw
Los comandos vipw y vigr editan los archivos / etc / passwd y / etc / group, respectivamente. Con el indicador -s, editarán las versiones ocultas de esos archivos, / etc / shadow y / etc / gshadow, respectivamente. Los programas establecerán los bloqueos apropiados para evitar la corrupción de archivos.
vipw
y vigr
, gracias! Yo siempre usabasudo vim /etc/passwd
visudo
sudo.ws/man/1.8.15/visudo.man.html , @tac
sudo -e
, que realiza esta función de edición de bloqueo para cualquier edición.
Otra opción, suponiendo que tenga acceso a otra cuenta, es anular manualmente el shell predeterminado utilizando su --shell=/bin/bash
:
-s, --shell = SHELL
ejecuta SHELL si / etc / shells lo permite
La principal ventaja de esto es que solo requiere acceso a otra cuenta, no a otra privilegiada .
Por razones de seguridad, los inicios de sesión, ya sean textuales o gráficos, y utilidades similares, su
y sudo
que le permiten ejecutar comandos como un usuario diferente, todos ejecutan esos comandos a través del shell del usuario objetivo. Si el shell del usuario objetivo no funciona, bueno, has visto los resultados :-(
A menos que tenga un shell raíz aún funcional que se ejecute en algún lugar o algo así como un binario setuid-root o algo que le permita evitar esto, reiniciar y corregir el problema usando un sistema de rescate o una imagen en vivo es probablemente su mejor opción.
Inicie el sistema de rescate, monte el sistema de archivos raíz de su sistema real en algún lugar, digamos /mnt/foo
, y edite /mnt/foo/etc/passwd
para arreglar el shell. Ahorre, desmonte y ya está.
/etc/passwd
no es texto sin formato? No he visto eso en al menos una década. ¿Sigue siendo algo en algunos sistemas? De todos modos, supongo que chroot /mnt/foo chsh -s /bin/bash
podría hacer el truco en ese caso.
Agregue init=/bin/bash
a su línea de comando del núcleo (si arranca con grub, presione e
para editar la entrada de arranque), y tendrá un shell bash ejecutándose como root sin siquiera tener que proporcionar una contraseña. Sin embargo, es probable que su sistema de archivos raíz siga siendo de solo lectura, por lo que primero deberá volver a montarlo y luego podrá volver a cambiar el shell chsh
.
sudo usermod -s /bin/bash jdoe
cambiará la capa de jdoe a bash
. Entonces puedes sudo egrep jdoe /etc/passwd
verificar.