Comment modifier un shell par défaut des utilisateurs dans OSX?

Quelle est la manière correcte d'OSX de modifier un shell par défaut des utilisateurs? Quand j'ai googlé pour cela, j'ai trouvé plusieurs références à une application appelée NetInfo Manager mais je ne pouvais pas la trouver sur mon système. Il y avait également des références à une version de ligne de commande appelée niutil que je n'ai pas trouvée non plus.

Pour <= 10.4 – netinfo manager, / users / who / shell

Pour> = 10,5

  1. Accédez à Préférences système -> Comptes
  2. Cliquez sur l'icône de verrouillage pour débloquer le volet de préférences
  3. Cliquez avec le bouton droit de la souris (ou cliquez avec le bouton de commande) sur l'utilisateur et sélectionnez "options avancées"
  4. Modifier le champ shell de connexion
sudo chsh -s /path/to/shell username 

Où shell est celui que vous voulez pour cet utilisateur. sudo n'est pas nécessaire si vous connaissez le mot de passe du username d'utilisateur.

 man chsh 

Pour plus d'exemples.

NetInfo a été remplacé par Directory Services (dscl) et on peut noter le shell par défaut pour Mac OS X puisque 10.3 a été bash. Avant cela, c'était tcsh.

Si vous devez le faire à partir de la ligne de commande (p. Ex. Pour pousser via ARD ou à distance via SSH), vous pouvez exécuter:

 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 vous n'êtes pas sûr du shell actuel, vous pouvez exécuter:

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

Si l'utilisateur n'est pas un utilisateur local, le chemin changera simplement et, si nécessaire, vous modifierez localhost au nom de votre Open Directory Server. (En supposant qu'il fonctionne 10,5).

L'information est stockée dans .plists (xml) dans /private/var/db/dslocal/ – vous ne souhaitez pas modifier les fichiers plist à la main cependant.

Pour 10.10:

Pas de shell mais UserShell :

 sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh