OSX에서 사용자 기본 쉘을 어떻게 변경합니까?


33

사용자 기본 쉘을 변경하는 올바른 OSX 방법은 무엇입니까? 내가 구글 검색 할 때 NetInfo Manager라는 응용 프로그램에 대한 여러 참조를 찾았지만 내 시스템에서 찾을 수 없었습니다. niutil이라는 명령 행 버전에 대한 참조도 없었습니다.


답변:


52

<= 10.4의 경우-netinfo 관리자, / users / whoever / shell

> = 10.5의 경우

  1. 시스템 환경 설정-> 계정으로 이동
  2. 환경 설정 창을 잠금 해제하려면 잠금 아이콘을 클릭하십시오
  3. 사용자를 마우스 오른쪽 버튼으로 클릭 (또는 Control- 클릭)하고 "고급 옵션"을 선택하십시오.
  4. 로그인 쉘 필드 편집

5
와우, OS XI를 사용한지 8 년이 지난 후에도 사용자 환경 설정에서 컨트롤 클릭에 대해 알지 못했습니다. +1
jkp

1
Control-Click이 놀랍습니다!
Eonil

1
내 계정의 쉘을 PATH에서 옮긴 후 생명의 은인 ... 터미널을 시작하여 명령 줄을 통해 수정할 수 없습니다!
davemyron

2
el capitan에서 더 이상 작동하지 않습니까?
MarcusJ

사실, 이것은 이런 종류의 문제이며, 7 년 동안 줄을 섰고 상황이 바뀌 었습니다. 왜 스스로 연구하고, 추가하고 대답하지 않는가? 공개됩니다.
Chopper3

33
sudo chsh -s /path/to/shell username

여기서 shell은 해당 사용자에게 필요한 것입니다. 의 비밀번호 sudo를 알고 있으면 필요하지 않습니다 username.

man chsh

더 많은 예를 들어.


su에서는 root에서도 작동하며 제어판에는 표시되지 않습니다. 내 생각 엔?
크리스 F 캐롤

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)로 대체되었으며 10.3 이후 Mac OS X의 기본 쉘은 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

사용자가 로컬 사용자가 아닌 경우 경로는 단순히 변경되며 필요한 경우 localhostOpen Directory Server 이름으로 변경 합니다. (10.5를 실행한다고 가정).

정보는 .plists (xml)에 저장됩니다 /private/var/db/dslocal/. 그러나 plist 파일을 직접 편집하고 싶지는 않습니다.


7

10.10의 경우 :

하지 shellUserShell:

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.