Bagaimana cara mengganti shell default di FreeBSD?

10

Shell default di FreeBSD adalah shdan saya benar-benar tidak tahan: autocomplete sangat terbatas, dan mengulangi perintah bunuh saya. Saya merasa seperti orang yang bersenjata dan berkaki satu ...

Bagaimana saya bisa mengubah shell secara global menjadi zshatau bash- untuk root dan untuk semua pengguna saat ini dan yang akan datang?

holms
sumber
1
Hanya mencoba ini untuk memperbarui pengguna yang ada di FreeBSD 9.1 dan sistem mendorong saya untuk menggunakan yang berikut: chpass -s / usr / local / bin / bash USER
commbot

Jawaban:

28

Untuk pengguna yang ada, gunakan chshperintah (" ch ange sh ell"):

chsh -s SHELL USER
chsh -s /usr/local/bin/bash root

Untuk pengguna masa depan:

  • Edit " /etc/pw.conf" defaultshellkata kunci
  • Saat digunakan adduser(), pilih shell yang diperlukan
alvosu
sumber
15
... tapi hati-hati tentang mengganti shell root ke sesuatu dari pohon port (mis., / usr / local / bin / bash), karena jika Anda mengacaukan sesuatu selama upgrade port Anda mungkin menemukan diri Anda tanpa akses root.
larsks
2
s / fitur / masa depan /?
Dijeda sampai pemberitahuan lebih lanjut.
larsk: zsh dapat dibuat secara statis benar ..? [setidaknya saya melihat parameter di "make config"] sejauh yang saya mengerti, ini adalah biner dengan semua dependensi bawaan? jadi bisakah saya meletakkan / usr / local / bin / zsh ke / bin / zsh? pengguna root dapat menggunakan versi lama tidak apa-apa .. maka itu akan aman?
holms
8
Membangunnya secara statis dan menyalinnya ke / bin mungkin adalah hal paling aman yang dapat Anda lakukan. Saya hanya membiarkan shell root diset /bin/shdan kemudian exec bashpada saat -saat langka ketika saya benar-benar perlu login sebagai root (lebih sering saya hanya menggunakan sudodari akun pengguna saya).
larsks
Catatan ini harus dijalankan sebagai root (atau dengan sudo).
Sopalajo de Arrierez