Как изменить пользовательскую оболочку по умолчанию в OSX?

33

Как правильно использовать OSX для изменения оболочки пользователя по умолчанию? Когда я погуглил, я нашел несколько ссылок на приложение под названием NetInfo Manager, но не смог найти его в своей системе. Были также ссылки на версию командной строки под названием niutil, которую я тоже не нашел.

Дэвид Холм
источник
Возможный дубликат Как мне установить мою оболочку в Mac OS X?
Даниэль Бек

Ответы:

52

для <= 10,4 - менеджер netinfo, / users / whoever / shell

для> = 10,5

  1. Зайдите в Системные настройки -> Аккаунты
  2. Нажмите на значок замка, чтобы разблокировать панель настроек
  3. Щелкните правой кнопкой мыши (или удерживайте нажатой клавишу «Control») на пользователе и выберите «дополнительные параметры»
  4. Изменить поле оболочки входа
Chopper3
источник
5
Ничего себе, после 8 лет использования OS X я не знал о щелчке элемента управления в пользовательских настройках: я думаю, что это было добавлено в 10.5, хотя, как вы указали. +1
JKP
1
Control-Click ошеломляет!
Eonil
1
Спасатель после перемещения оболочки моего аккаунта из PATH ... не смог запустить Terminal для исправления через командную строку!
Davemyron
2
Это больше не работает на Эль-Капитан?
MarcusJ
Правда, это проблема с такими вещами, 7 лет спустя, и все изменилось - почему бы не сделать некоторые исследования самостоятельно, добавить и ответить, и это получит голосование, вот как все работает, лучше, чем просто отсекая маленькие ответы
Chopper3
33
sudo chsh -s /path/to/shell username

где shell это тот, который вы хотите для этого пользователя. sudoне требуется, если вы знаете usernameпароль.

man chsh

для большего количества примеров.

churnd
источник
работает также для root для su, который не отображается на панели управления. Я думаю?
Крис Ф. Кэрролл
4
Вы также можете просто запустить chshи изменить поле оболочки. Если вы получаете сообщение об ошибке chsh: /usr/local/bin/bash: non-standard shell, добавьте /usr/local/bin/bashк /etc/shells.
Lri
3
Возможно, что-то изменилось в 10.9, но теперь эта команда выдает сообщение об использовании. Похоже, правильный синтаксис сейчасchsh -s /path/to/shell username
Matthematics
9

NetInfo была заменена Службами каталогов (dscl), и можно отметить, что оболочка по умолчанию для Mac OS X начиная с версии 10.3 была bash. До этого это был tcsh.

Если вам нужно сделать это из командной строки (например, для отправки через ARD или удаленно через SSH), вы можете запустить:

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

Если вы не уверены в текущей оболочке, вы можете запустить:

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

Если пользователь не является локальным пользователем, путь просто изменится, и при необходимости вы измените localhostимя вашего Open Directory Server. (Предполагается, что он работает 10,5).

Информация хранится в .plists (xml) в /private/var/db/dslocal/- однако вы не хотите редактировать файлы plist вручную.

Chealion
источник
7

Для 10.10:

не shellно UserShell:

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
Виллем
источник