¿Cómo cambio el shell predeterminado de un usuario en OSX?


33

¿Cuál es la forma correcta de OSX de cambiar el shell predeterminado de un usuario? Cuando busqué en Google, encontré varias referencias a una aplicación llamada NetInfo Manager, pero no pude encontrarla en mi sistema. También hubo referencias a una versión de línea de comandos llamada niutil que tampoco encontré.


Respuestas:


52

para <= 10.4 - administrador de netinfo, / users / whoever / shell

para> = 10.5

  1. Vaya a Preferencias del sistema -> Cuentas
  2. Haga clic en el ícono de bloqueo para desbloquear el panel de preferencias
  3. Haga clic derecho (o control-clic) en el usuario y seleccione "opciones avanzadas"
  4. Editar campo de inicio de sesión

55
Wow, después de 8 años de usar OS X, no sabía acerca de hacer clic en el control en las preferencias de los usuarios: supongo que esto se agregó en 10.5, como lo señaló. +1
jkp

1
¡Control-Click es asombroso!
Eonil

1
Salvavidas después de mover el shell de mi cuenta fuera de la RUTA ... ¡no se pudo iniciar la Terminal para arreglar a través de la línea de comando!
davemyron

2
¿Ya no funciona en el Capitan?
MarcusJ

Es cierto, este es el problema con este tipo de cosas, 7 años más adelante y las cosas han cambiado: ¿por qué no investigar un poco usted mismo, agregar y responder y se votará, así es como funcionan las cosas, mejor que simplemente responder pequeñas respuestas?
Chopper3

33
sudo chsh -s /path/to/shell username

donde shell es el que desea para ese usuario. sudono es necesario si conoce usernamela contraseña.

man chsh

para mas ejemplos


también funciona para root para su, que no está visible en el panel de control. ¿Yo creo que?
Chris F Carroll

44
También puede ejecutar solo chshy cambiar el campo de shell. Si obtiene un error como chsh: /usr/local/bin/bash: non-standard shell, agréguelo /usr/local/bin/basha /etc/shells.
Lri

3
Tal vez algo cambió en 10.9, pero este comando ahora arroja un mensaje de uso. Parece que la sintaxis correcta es ahorachsh -s /path/to/shell username
Matthematics

9

NetInfo ha sido reemplazado por Directory Services (dscl) y se puede observar que el shell predeterminado para Mac OS X desde 10.3 ha sido bash. Antes de eso era tcsh.

Si necesita hacer esto desde la línea de comando (por ejemplo, para presionar a través de ARD o remotamente a través de SSH) puede ejecutar:

sudo dscl localhost -change /Local/Default/Users/USERNAME shell OLD_SHELL NEW_SHELL
#In Use:
sudo dscl localhost -change /Local/Default/Users/chealion shell /bin/bash /bin/zsh

Si no está seguro del shell actual, puede ejecutar:

sudo dscl localhost -read /Local/Default/Users/USERNAME shell

Si el usuario no es un usuario local, la ruta simplemente cambiará y, si es necesario, cambiaría localhostel nombre de su Open Directory Server. (Suponiendo que se ejecuta 10.5).

La información se almacena en .plists (xml) en /private/var/db/dslocal/- sin embargo, no desea editar los archivos plist a mano.


7

Para 10.10:

no shellpero UserShell:

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.