Bagaimana cara mengubah shell default pengguna di OSX?

33

Apa cara OSX yang benar untuk mengubah shell default pengguna? Ketika saya mencari di Google untuk itu saya menemukan beberapa referensi ke aplikasi bernama NetInfo Manager tetapi saya tidak dapat menemukannya di sistem saya. Ada juga referensi ke versi baris perintah yang disebut niutil yang juga tidak saya temukan.

David Holm
sumber
kemungkinan duplikat dari Bagaimana cara mengatur shell saya di Mac OS X?
Daniel Beck

Jawaban:

52

untuk <= 10.4 - manajer netinfo, / pengguna / siapa pun / shell

untuk> = 10.5

  1. Buka Preferensi Sistem -> Akun
  2. Klik ikon kunci untuk membuka kunci panel preferensi
  3. Klik kanan (atau kontrol-klik) pada pengguna dan pilih "opsi lanjutan"
  4. Edit bidang shell login
Chopper3
sumber
5
Wow, setelah 8 tahun menggunakan OS XI tidak tahu tentang kontrol mengklik pada pengguna lebih suka: Saya kira ini ditambahkan dalam 10,5 meskipun seperti yang Anda tunjukkan. +1
jkp
1
Control-Click sedang macet!
Eonil
1
Lifesaver setelah memindahkan shell akun saya dari PATH ... tidak dapat memulai Terminal untuk diperbaiki melalui baris perintah!
davemyron
2
Itu tidak berfungsi lagi pada el Capitan?
MarcusJ
Benar, ini adalah masalah dengan hal-hal semacam ini, 7 tahun kemudian dan banyak hal telah berubah - mengapa tidak melakukan riset sendiri, menambah dan menjawab dan itu akan terangkat, itulah cara kerja, lebih baik daripada hanya mengecam sedikit jawaban
Chopper3
33
sudo chsh -s /path/to/shell username

di mana shell adalah yang Anda inginkan untuk pengguna itu. sudotidak diperlukan jika Anda tahu usernamekata sandi.

man chsh

untuk lebih banyak contoh.

churnd
sumber
berfungsi juga untuk root untuk su, yang tidak terlihat di panel kontrol. Kupikir?
Chris F Carroll
4
Anda juga dapat menjalankan adil chshdan mengubah bidang shell. Jika Anda mendapatkan kesalahan seperti chsh: /usr/local/bin/bash: non-standard shell, tambahkan /usr/local/bin/bashke /etc/shells.
Lri
3
Mungkin ada sesuatu yang berubah di 10.9, tetapi perintah ini sekarang melempar pesan penggunaan. Tampaknya sintaks yang benar adalah sekarangchsh -s /path/to/shell username
Matthematics
9

NetInfo telah digantikan oleh Directory Services (dscl) dan dapat dicatat shell default untuk Mac OS X sejak 10.3 telah bash. Sebelum itu tcsh.

Jika Anda perlu melakukan ini dari baris perintah (mis. Untuk mendorong melalui ARD atau jarak jauh melalui SSH) Anda dapat menjalankan:

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

Jika Anda tidak yakin dengan shell saat ini, Anda dapat menjalankan:

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

Jika pengguna bukan pengguna lokal, jalurnya akan berubah dan jika perlu Anda akan mengubah localhostnama Server Direktori Terbuka Anda. (Dengan asumsi itu berjalan 10,5).

Info disimpan di .plists (xml) di /private/var/db/dslocal/- Anda tidak ingin mengedit file plist dengan tangan.

Chealion
sumber
7

Untuk 10.10:

tidak shelltapi UserShell:

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