Comment changer le shell par défaut des utilisateurs sous OSX?

33

Quelle est la méthode OSX correcte pour changer le shell par défaut des utilisateurs? Lorsque j'ai cherché sur Google 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 aussi des références à une version en ligne de commande appelée niutil, que je n'ai pas non plus trouvée.

David Holm
la source
duplication possible de Comment définir mon shell sous Mac OS X?
Daniel Beck

Réponses:

52

pour <= 10.4 - gestionnaire netinfo, / users / whoever / shell

pour> = 10,5

  1. Allez dans Préférences Système -> Comptes
  2. Cliquez sur l'icône de verrouillage pour déverrouiller le volet des préférences.
  3. Cliquez avec le bouton droit de la souris sur l'utilisateur ou cliquez dessus avec le bouton droit de la souris, puis sélectionnez "Options avancées".
  4. Modifier le champ de connexion
Chopper3
la source
5
Wow, après 8 ans d'utilisation d'OS XI, je ne savais pas que le contrôle était cliqué dans les préférences des utilisateurs: je suppose que cela a été ajouté à 10.5 bien que, comme vous l'avez fait remarquer. +1
jkp
1
Control-Click est stupéfiant!
Eonil
1
Gareautrain après avoir déplacé le shell de mon compte hors de PATH ... impossible de démarrer le terminal à réparer via la ligne de commande!
davemyron
2
Ca ne marche plus sur El Capitan?
MarcusJ
C'est vrai que c'est le problème avec ce genre de chose, 7 ans plus tard et les choses ont changé - pourquoi ne pas faire des recherches soi-même, ajouter des réponses, et ça va être voté, c'est comme ça que les choses fonctionnent, mieux que de simplement tailler des petites réponses
Chopper3
33
sudo chsh -s /path/to/shell username

où shell est celui que vous voulez pour cet utilisateur. sudon'est pas nécessaire si vous connaissez usernamele mot de passe.

man chsh

pour plus d'exemples.

churnd
la source
fonctionne aussi pour root pour su, ce qui n’est pas visible dans le panneau de configuration. Je pense?
Chris F Carroll
4
Vous pouvez également exécuter simplement chshet modifier le champ shell. Si vous obtenez une erreur comme chsh: /usr/local/bin/bash: non-standard shell, ajoutez /usr/local/bin/bashà /etc/shells.
Lri
3
Peut-être que quelque chose a changé dans 10.9, mais cette commande envoie maintenant un message d'utilisation. Il semble que la syntaxe correcte est maintenantchsh -s /path/to/shell username
Matthematics
9

NetInfo a été remplacé par Directory Services (dscl) et il est à noter que le shell par défaut pour Mac OS X depuis le 10.3 est bash. Avant cela, c’était tcsh.

Si vous avez besoin de le faire depuis la ligne de commande (par exemple pour appuyer 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 d'accès changera simplement et si nécessaire, vous modifieriez localhostle nom de votre serveur Open Directory. (En supposant qu'il court 10.5).

Les informations sont stockées dans .plists (xml) dans /private/var/db/dslocal/- vous ne voulez cependant pas éditer les fichiers de plist à la main.

Chealion
la source
7

Pour 10h10:

non shellmais UserShell:

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