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.


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

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.


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.


7

Untuk 10.10:

tidak shelltapi UserShell:

sudo dscl localhost -change /Local/Default/Users/USERNAME UserShell /bin/bash /bin/ksh
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.