
Para comenzar, soy nuevo en todo esto y todavía estoy aprendiendo, así que por favor tengan paciencia conmigo en lo que respecta a terminología y ubicación de cosas.
Configuración: Entorno virtual Proxmox 7.2-3 + Contenedor + ubuntu-22.04-standard_22.04-1_amd64.tar.zst
Asunto: Para la terminal/consola de mi servidor Ubuntu, ayer instalé Fisher y Fish Shell simplemente para cambiar la apariencia. Cuando intenté reiniciar el contenedor, recibí un problema de inicio de sesión que parecía estar relacionado con la ubicación de los peces que había colocado en el directorio. Aunque no estoy totalmente seguro.
No sé cómo volver a iniciar sesión en el contenedor y prefiero no tener que empezar desde cero configurando todo nuevamente. Estaría agradecido por cualquier ayuda.
Más información de fondo e imágenes:
Respuesta1
Primero, la buena noticia: es casi seguro que hay una manera de recuperarse. La mala noticia es que no sé exactamente cómo hacerlo en este caso. A continuación haré algunas sugerencias sobre lo que creo que funcionará, pero no ejecuto Proxmox, por lo que no puedo realizar pruebas directamente.
Pero primero voy a hacer una sugerencia:
- Al instalar el software, utilice eldocumentos oficialesprimero, en lugar de un sitio "técnico" como el que mencionó anteriormente.
El artículo al que vinculó arriba essimplemente incorrecto y resultará en corrupción del sistema. El proceso correcto está documentado por el equipo de Fish en:
- Guía de instalación para Ubuntu(vinculado desde el principalPezpágina).
- Documentación sobreconfigurando el shell predeterminado
Lo siento, un poco despotricado: los sitios como el que usted vinculó son "sitios de contenido pago". Pagan por artículos de escritores "independientes" (aunque "examinados"). Desafortunadamente, la calidad del contenido puede variar enormemente. Para darles el peor ejemplo que he visto, el año pasado llegó un nuevo visitante a un subreddit que frecuento por un tema técnico. La persona escribió (parafraseando, pero con precisión):
No tengo conocimiento de [tema] y nunca lo he usado, pero me pidieron que escribiera un artículo sobre cómo hacer [xyz] con [tema]. ¿Alguien puede darme alguna orientación?
Tenga en cuenta que no lo sécualsitio para el que estaban escribiendo.
Por supuesto, no todos los artículos de todos los sitios de contenido pago son así, pero el artículo al que hace referencia anteriormenteesmalo. Cualquier documentación que corrompa absolutamente y sin hacer preguntas su sistema esmalo. El principal problema está en:
El paso 4 ("Hacer concha de pescado como concha predeterminada") en ese documento dice:
sudo chsh -s /usr/local/bin/fish
¡Son múltiples errores reunidos en uno!
Primero, y lo peor: esa es la ruta incorrecta para Fish en Ubuntu. Creo que ahí es donde se instalaría Fish en macOS. En Ubuntu, es (normalmente)
/usr/bin/fish
, pero como señalan los documentos de Fish, siempre debes confirmar la ubicación ensusistema.Al usarlo
sudo chsh
sin un nombre de usuario, cambia el shell para el usuario root. Esto es malo y hace que la recuperación sea mucho más difícil.Si quisiera cambiar el shell para el usuario actual usando
sudo
, la sintaxis sería:sudo chsh -s <path/to/shell> $USER
Pero incluso eso es una mala idea, ya
chsh
que el usuario root (también conocido comosudo chsh
) le permitirá establecer una ruta de "shell incorrecta". Le advertirá, pero aún así cambiará/etc/passwd
para usar la ruta de shell incorrecta que le indicó.sudo chsh -s /this/is/bad $USER grep $USER /etc/passwd
Verá que se ha establecido el camino equivocado.
Nota al margen: puedo probar estas cosas en mi sistema sin temor a sufrir daños ya que estoy usando el Subsistema de Windows para Linux, un entorno virtual donde sé que puedo recuperar fácilmente cualquiera de estos errores. Los contenedores Proxmox en realidad deberían ser muy similares a la tecnología que WSL usa "debajo del capó", por lo que supongo que existe un mecanismo de recuperación igualmente fácil allí.
ElcorrectoEl comando para cambiar su shell a Fish en Ubuntu es simplemente:
chsh -s /usr/bin/fish
Mientras no lo uses sudo
, cambiará.sushell del usuario, y lo harávalidarque el caparazón es bueno.
Plan de recuperación
Mencionas que estás usando Ubuntu como contenedor en Proxmox. Eso es bueno, creo. Si estuviera usando una máquina virtual, necesitaría iniciar Ubuntu en Proxmox usando un shell válido. Eso todavía sería posible.
Nuevamente, la mala noticia aquí es que no estoy muy seguro de cómo hacer esto y como Proxmox no se ejecutabajoUbuntu, es posible que necesites un sitio diferente (como los foros de Proxmox) para responder a esto. En general, necesitarás:
Acceda a la línea de comandos de Proxmox.
Supongo por el documento de Proxmox que necesitarás usar el
pct
herramienta para gestionar el contenedor.Acceda al contenedor de Ubuntu con un shell válido. Podrías intentarlo
pct exec <vmid> /usr/bin/bash
.Deberá estar
root
dentro del contenedor de Ubuntu, que creo que será el predeterminado parapct
.
Una vez túteneracceso al contenedor de Ubuntu en un shell válido, como root:
chsh -s /usr/bin/bash
Existe la posibilidad de que esto no funcione ya que el shell del usuario actual no es válido. Sin embargo, creo que root aún podrá restablecer el shell (un usuario normal definitivamente no lo haría). Sin embargo, si tienes problemas, la otra alternativa es:
vipw
Esto le permitirá editarlo
/etc/passwd
directamente y cambiarlo/usr/local/bin/fish
a/usr/bin/bash
.Esto restablecerá el shell de su usuario root a uno bueno. Para root, recomendaría dejar el shell como Bash. Cambie su shell a Fish para su usuario normal no root como se describe en los documentos de Fish.