... Ya resolví el problema usando la Utilidad de Discos para reparar permisos ...
Si la reparación de los permisos soluciona el problema, la causa es (casi con certeza) que los permisos de /etc/shells
fueron incorrectos, lo que impide que la Terminal lo lea.
/etc/shells
contiene una lista de programas de shell válidos, y Terminal comprueba si el shell para su cuenta de usuario está en la lista. Si no, produce el mensaje "shell ilegal". Si no puede leer el archivo /etc/shells
debido a problemas de permisos, también produce este mensaje.
Más raramente, algunas personas se han encontrado con este problema cuando el archivo /etc/shells
se modificó de manera que está vacío, en cuyo caso deberá restaurar su contenido copiándolo desde un buen sistema o con un Time Restauración de la máquina, etc.
Para responder a su pregunta original:
Si Terminal se queja de un "shell ilegal" significa que el shell de su cuenta de usuario no se encontró en /etc/shells
.
Puede ver qué shells se consideran válidos con cat /etc/shells
.
Puede verificar qué shell está configurada para usar su cuenta de usuario con echo $SHELL
, o leyendo la información del usuario con dscl . -read "/Users/$LOGNAME" UserShell
. O puedes usar Preferencias del sistema :
- Abra Preferencias del sistema y vaya a Usuarios & Grupos .
- Haga clic en el bloqueo e ingrese su contraseña para poder leer / configurar las configuraciones del usuario.
- Haz clic con la tecla Control presionada (o haz clic con el botón derecho) en tu usuario para obtener un menú contextual y elige Opciones avanzadas ... .
La hoja de Opciones avanzadas muestra información detallada de la cuenta de usuario, incluida la ruta del shell. También puede usar esto para editar la ruta de acceso del shell para volver a habilitar los inicios de sesión si se ha establecido en un valor que no aparece en /etc/shells
.