Wie ändere ich die Standard-Shell eines Benutzers in OSX?

Was ist die richtige OSX-Methode zum Ändern der Standard-Shell eines Benutzers? Als ich danach googelte, fand ich mehrere Verweise auf eine Anwendung namens NetInfo Manager, konnte sie jedoch auf meinem System nicht finden. Es gab auch Verweise auf eine Befehlszeilenversion namens niutil, die ich auch nicht gefunden habe.

 35
Author: David Holm, 2009-06-06

4 answers

Für

Für >=10.5

  1. Gehe zu Systemeinstellungen - > Konten
  2. Klicken Sie auf das Schlosssymbol, um den Einstellungsbereich zu entsperren
  3. Rechtsklick (oder Control-click) auf Benutzer und wählen Sie "erweiterte Optionen"
  4. Login-Shell-Feld bearbeiten
 53
Author: Chopper3,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-03-06 10:16:29
sudo chsh -s /path/to/shell username

Wobei Shell diejenige ist, die Sie für diesen Benutzer wünschen. sudo wird nicht benötigt, wenn Sie das Passwort von username kennen.

man chsh

Für weitere Beispiele.

 35
Author: churnd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-08-05 19:11:48

NetInfo wurde durch Directory Services (dscl) ersetzt und es kann festgestellt werden, dass die Standard-Shell für Mac OS X seit 10.3 bash ist. Davor war es tcsh.

Wenn Sie dies über die Befehlszeile tun müssen (zB. zum Beispiel über ARD oder remote über SSH) können Sie Folgendes ausführen:

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

Wenn Sie sich der aktuellen Shell nicht sicher sind, können Sie Folgendes ausführen:

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

Wenn der Benutzer kein lokaler Benutzer ist, ändert sich der Pfad einfach und bei Bedarf würden Sie localhost in den Namen Ihres Open ändern Verzeichnisserver. (Vorausgesetzt, es läuft 10.5).

Die Informationen sind gespeichert in .plist (xml) in /private/var/db/dslocal/ - Sie möchten die Plist-Dateien jedoch nicht von Hand bearbeiten.

 10
Author: Chealion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2009-06-06 16:12:58

Für 10.10:

Nicht shell sondern UserShell:

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
 8
Author: willem,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-09-25 15:50:19