Come posso cambiare la shell predefinita di un utente in OSX?


33

Qual è il modo OSX corretto per modificare la shell predefinita di un utente? Quando ho cercato su Google per questo ho trovato diversi riferimenti a un'applicazione chiamata NetInfo Manager ma non sono riuscito a trovarlo sul mio sistema. C'erano anche riferimenti a una versione della riga di comando chiamata niutil che non ho trovato neanche.


Risposte:


52

per <= 10.4 - gestore netinfo, / users / whoever / shell

per> = 10.5

  1. Vai a Preferenze di Sistema -> Account
  2. Fare clic sull'icona del lucchetto per sbloccare il riquadro delle preferenze
  3. Fare clic con il tasto destro (o fare clic tenendo premuto il tasto Ctrl) sull'utente e selezionare "Opzioni avanzate"
  4. Modifica il campo della shell di accesso

5
Caspita, dopo 8 anni di utilizzo di OS XI non sapevo di fare clic sui controlli nelle preferenze degli utenti: immagino che questo sia stato aggiunto in 10.5 anche se hai sottolineato. +1
jkp

1
Control-Click è sbalorditivo!
Eonil,

1
Salvavita dopo aver spostato la shell del mio account fuori dal PERCORSO ... impossibile avviare Terminal per risolvere tramite riga di comando!
davemyron,

2
Non funziona più su el Capitan?
MarcusJ,

È vero, questo è il problema con questo genere di cose, 7 anni dopo e le cose sono cambiate - perché non fare qualche ricerca tu stesso, aggiungere e rispondere e verrà valutato, è così che funzionano le cose, meglio che semplicemente cogliere piccole risposte
Chopper3

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

dove shell è quella che desideri per quell'utente. sudonon è necessario se si conosce usernamela password.

man chsh

per ulteriori esempi.


funziona anche per root per su, che non è visibile nel pannello di controllo. Credo?
Chris F Carroll,

4
Puoi anche eseguire solo chshe modificare il campo shell. Se viene visualizzato un errore simile chsh: /usr/local/bin/bash: non-standard shell, aggiungere/usr/local/bin/bash a /etc/shells.
Lri

3
Forse qualcosa è cambiato nel 10.9, ma questo comando ora genera un messaggio di utilizzo. Sembra che la sintassi corretta sia orachsh -s /path/to/shell username
Matematica

9

NetInfo è stato sostituito da Directory Services (dscl) e si può notare la shell predefinita per Mac OS X da quando 10.3 è stato bash. Prima di allora era tcsh.

Se è necessario eseguire questa operazione dalla riga di comando (ad es. Per inviare tramite ARD o in remoto tramite SSH) è possibile eseguire:

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

Se non sei sicuro della shell corrente puoi eseguire:

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

Se l'utente non è un utente locale, il percorso cambierà semplicemente e, se necessario, si cambierà localhostcon il nome di Open Directory Server. (Supponendo che funzioni 10.5).

Le informazioni sono memorizzate in .plists (xml) in /private/var/db/dslocal/ - tuttavia non si desidera modificare manualmente i file di plist.


7

Per il 10.10:

non shellma UserShell:

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.