Hoy estaba limpiando acerca de tratar de desinstalar macports cuando me di cuenta de un error que se ha echado siempre he usado sudo. Me mató de la Terminal y trató de reiniciar lo que no se pudo con el mensaje de error "Usted no está autorizado para ejecutar esta aplicación" y "El administrador ha establecido su shell para un valor ilegal." ¿Cómo puedo solucionar este problema?
Respuestas
¿Demasiados anuncios?...Yo ya había resuelto el problema mediante la Utilidad de Discos para reparar los permisos de...
Si la reparación de permisos se resuelve el problema, la causa es casi seguro que los permisos de
/etc/shells
eran incorrectos, la prevención de la Terminal de la lectura.
/etc/shells
contiene una lista de programas de shell, y la Terminal comprueba si la concha de su cuenta de usuario está en la lista. Si no, se produce la "ilegal shell" mensaje. Si no puede leer el/etc/shells
archivo debido a problemas de permisos, también produce este mensaje.Más raramente, algunas personas se han encontrado con este problema cuando el
/etc/shells
archivo era de alguna manera alterado por lo que es vacío, en cuyo caso tendrás que restaurar su contenido mediante la copia de un buen sistema, o con una Máquina del Tiempo de restauración, etc.Para responder a tu pregunta original:
Si la Terminal se queja acerca de un "ilegal shell" significa que la concha de tu cuenta de usuario no se encontró en
/etc/shells
.Se puede ver que las conchas son considerados válidos con
cat /etc/shells
.Puede comprobar la concha de su cuenta de usuario está configurado para utilizar con
echo $SHELL
, o mediante la lectura de la información del usuario condscl . -read "/Users/$LOGNAME" UserShell
. O usted puede utilizar las Preferencias del Sistema:
- Abra Preferencias del Sistema y vaya a Usuarios Y Grupos.
- Haga clic en el candado e introduzca su contraseña para poder leer/establecer la configuración de usuario.
- Control-Clic (o Clic Derecho) sobre el usuario para obtener un menú contextual y elija Opciones Avanzadas....
Las Opciones Avanzadas de la hoja de muestra detallada información de cuenta de usuario, incluyendo la shell de la ruta. También puede utilizar esta para editar el shell de la ruta para volver a habilitar los inicios de sesión si se ha ajustado a un valor que no aparece en
/etc/shells
.
Si usted está recibiendo algunos mensajes de error extraños en su Terminal de windows cuando se abre por primera vez, que probablemente indica un problema con su Terminal preferencias. Pruebe a quitar (o simplemente el cambio de nombre) a la Terminal de archivo de preferencias (~/Library/Preferences/com.apple.Terminal.plist
) y, a continuación, reiniciar el Terminal de la aplicación. (Fuente)
Si usted todavía tiene un problema, y luego mirar lo que tienes en tu shell punto archivos: ~/.bash_profile
, ~/.bashrc
, y el como. Si usted no puede averiguar cuál es el problema, pruebe a quitar (o simplemente el cambio de nombre) los dotfiles.
Otro lugar para buscar problemas es la default.term
archivo bajo ~/Library/Application Support/Terminal
. Este es el archivo que almacena la configuración predeterminada para las ventanas de la Terminal.
Si todo eso falla, utilice la Utilidad de Discos para reparar los permisos para el Terminal. (Fuente)
Tengo el mismo error después me encontré chsh
y de hacer un error en la ruta de acceso para el shell de inicio de sesión.
Yo no era capaz de abrir la Terminal, y nada de lo que pasó cuando traté de mostrar las opciones avanzadas de la hoja en la que los Usuarios Y Grupos en el panel de preferencias. Yo era capaz de ejecutar chsh -s /bin/bash
en iTerm 2 sin embargo.
También puede cambiar la configuración predeterminada de inicio de sesión de shell con dscl o editar /var/db/dslocal/nodes/Default/users/$USER.plist
directamente.
Para mí, he recibido este error debido a un chsh error tipográfico así. Puedo usar homebrew y (muy estúpidamente) establecer mi concha a los binarios en /usr/local/Bodega en lugar de la dinámica de enlace en /usr/local/bin. Como resultado de la Terminal amordazada, pero sorprendentemente, iTerm no. Este hilo fue muy útil para solucionar mi problema.
Para evitar que mi problema: si el uso de homebrew, SIEMPRE se hace referencia al vínculo dinámico de los binarios en /usr/local/bin, para que estos siempre se mantiene hasta la fecha.