Jak zmienić domyślną powłokę użytkownika w OSX?

33

Jaki jest prawidłowy sposób zmiany domyślnej powłoki użytkownika przez OSX? Kiedy go szukałem, znalazłem kilka odniesień do aplikacji o nazwie NetInfo Manager, ale nie mogłem jej znaleźć w moim systemie. Były też odniesienia do wersji wiersza poleceń o nazwie niutil, której też nie znalazłem.

David Holm
źródło
możliwy duplikat Jak ustawić moją powłokę w Mac OS X?
Daniel Beck

Odpowiedzi:

52

dla <= 10,4 - menedżer netinfo, / users / whoever / shell

dla> = 10,5

  1. Przejdź do Preferencji systemowych -> Konta
  2. Kliknij ikonę kłódki, aby odblokować panel preferencji
  3. Kliknij użytkownika prawym przyciskiem myszy (lub z wciśniętym klawiszem Control) i wybierz „opcje zaawansowane”
  4. Edytuj pole powłoki logowania
Siekacz 3
źródło
5
Wow, po 8 latach używania OS XI nie wiedziałem o kontrolnym kliknięciu w preferencje użytkownika: Myślę, że zostało to dodane w 10.5, jak już zauważyłeś. +1
jkp
1
Control-Click jest oszałamiający!
Eonil
1
Ratownik po przeniesieniu powłoki mojego konta poza ŚCIEŻKĘ ... nie mógł uruchomić Terminalu do naprawy za pomocą wiersza poleceń!
davemyron
2
To już nie działa na el Capitan?
MarcusJ
To prawda, że ​​jest to problem z tego rodzaju rzeczami, 7 lat później i rzeczy się zmieniły - dlaczego nie zrobić trochę badań samemu, dodać i odpowiedzieć, a zostanie to ocenione pozytywnie, tak to działa, lepiej niż tylko strzelanie krótkich odpowiedzi
Chopper3
33
sudo chsh -s /path/to/shell username

gdzie shell jest tym, który chcesz dla tego użytkownika. sudonie jest potrzebne, jeśli znasz usernamehasło.

man chsh

po więcej przykładów.

churnd
źródło
działa również dla roota dla su, który nie jest widoczny w panelu sterowania. Myślę?
Chris F Carroll
4
Możesz także uruchomić chshi zmienić pole powłoki. Jeśli pojawi się błąd jak chsh: /usr/local/bin/bash: non-standard shelldodać /usr/local/bin/bashdo /etc/shells.
Lri
3
Być może coś się zmieniło w 10.9, ale to polecenie wyświetla teraz komunikat o użyciu. Wygląda na to, że teraz jest poprawna składniachsh -s /path/to/shell username
Matthematics
9

NetInfo zostało zastąpione przez Usługi katalogowe (dscl) i można zauważyć, że jest to domyślna powłoka dla systemu Mac OS X, ponieważ wersja 10.3 została bash. Wcześniej było to tcsh.

Jeśli musisz to zrobić z wiersza poleceń (np. Do wypychania przez ARD lub zdalnie przez SSH), możesz uruchomić:

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

Jeśli nie masz pewności co do bieżącej powłoki, możesz uruchomić:

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

Jeśli użytkownik nie jest użytkownikiem lokalnym, ścieżka po prostu się zmieni iw razie potrzeby zmienisz localhostnazwę na serwer Open Directory Server. (Zakładając, że działa 10.5).

Informacje są przechowywane w .plists (xml) w /private/var/db/dslocal/- nie chcesz jednak ręcznie edytować plików plist.

Chealion
źródło
7

Dla 10.10:

nie shellale UserShell:

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
willem
źródło