¿En qué contexto hiciste esto? En una terminal actual, para los usuarios de shell predeterminado?
jgr208
¿no tienes usuarios en el grupo sudo?
Rui F Ribeiro
3
hace sudo vipwel trabajo?
Rui F Ribeiro
1
@RuiFRibeiro sí, gracias, no sabía que podía cambiar el shell raíz predeterminado en ese archivo
ChiseledAbs
1
No es necesario en este caso, pero cuando accidentalmente ha creado una catástrofe relacionada con la raíz, generalmente puede llevar la máquina al modo de usuario único, solucionar el problema y luego volver al modo multiusuario.
Boardrider
Respuestas:
29
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 chshcomando (por ejemplo, error chsh).
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.
Por razones de seguridad, los inicios de sesión, ya sean textuales o gráficos, y utilidades similares, suy sudoque 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/passwdpara arreglar el shell. Ahorre, desmonte y ya está.
curioso, ¿qué sucede si haces esto y el archivo / etc / passwd está en un hash en lugar de texto plano?
jgr208
1
/etc/passwdno 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/bashpodría hacer el truco en ese caso.
Celada
Nunca he descrito el problema, sin embargo, trabajo con sistemas bloqueados que necesitan tener / etc / passwd no en texto plano para evitar piratas informáticos y comprometer aún más el sistema si obtienen acceso. Hmm, eso podría funcionar, digamos que espero nunca tener que intentar ver si realmente funciona.
jgr208
Pude editar / etc / passwd con sudo desde una cuenta de usuario, no sabía que el shell estaba definido en este archivo, gracias
ChiseledAbs
@ChiseledAbs oh, ¿eras? Bien por ti, contento de haber resuelto tu problema. No pensé que te dejaría.
Celada
6
Agregue init=/bin/basha su línea de comando del núcleo (si arranca con grub, presione epara 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 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:
Y el shell raíz cambió manualmente.
(primera línea de
/etc/passwd
usualmente)De hombre vipw
fuente
vipw
yvigr
, gracias! Yo siempre usabasudo vim /etc/passwd
visudo
sudo.ws/man/1.8.15/visudo.man.html , @tacsudo -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
:La principal ventaja de esto es que solo requiere acceso a otra cuenta, no a otra privilegiada .
fuente
Por razones de seguridad, los inicios de sesión, ya sean textuales o gráficos, y utilidades similares,
su
ysudo
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á.fuente
/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 quechroot /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, presionee
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 shellchsh
.fuente
sudo usermod -s /bin/bash jdoe
cambiará la capa de jdoe a
bash
. Entonces puedessudo egrep jdoe /etc/passwd
verificar.fuente