Saya ingin mengubah shell default saya dari tcsh ke bash. Jadi saya mencoba dan inilah yang terjadi:
>sudo chsh userid
Changing the login shell for userid
Enter the new value, or press ENTER for the default
Login Shell [/xhbin/tcsh]: /bin/bash
chsh: user 'userid' does not exist in /etc/passwd
Memang, saya tidak di / etc / passwd. Saya tidak tahu kenapa.
Apa yang dapat saya?
getent passwd <userid>
). Saya pikir apakah menjalankanchsh
didukung dalam kasus itu mungkin tergantung pada pengaturan di/etc/pam.d/
Jawaban:
Komputer saya adalah bagian dari jaringan yang menggunakan otentikasi terdistribusi sehingga rincian pengguna saya tidak akan muncul di file lokal / etc / passwd (tetapi terlihat menggunakan getent passwd userid). (terima kasih @steeldriver) Dalam kasus saya, saya harus melakukan chsh pada mesin inti.
sumber
Ada solusi untuk
gnome-terminal
:bash
sebagai perintah Kustom (ataufish
, atau apa pun)sumber
Jika Anda menggunakan otentikasi LDAP oleh PAM atau sesuatu, Anda harus menemukan jawaban Anda di Server LDAP Anda. Mari kita arahkan untuk Microsoft AD, dalam hal ini akun domain Anda tidak dalam
/etc/passwd
ketika Anda masuk, tetapi Anda dapat melihat properti pengguna Anda dalam AD, dengangetent passwd | grep user
.Jika pada akhirnya ia menunjukkan shell Anda
/bin/csh
, itu karena di AD Anda ada atribut untuk itu. Jadi, jika Anda memiliki akun administrator pada AD, Anda dapat memperbaikinya sendiri. Jika tidak, beri tahu admin AD Anda untuk mengaktifkan fitur-fitur canggih di tab Lihat pengguna direktori aktif dan komputer> Properti pengguna> atribut UNIX . Di sana Anda dapat mengubah shell login/bin/bash
.Pastikan Anda tidak lupa menjalankan:
Sumber: Pengguna tidak ada di / etc / passwd ketika mencoba mengubah shell default .
sumber
Jika Anda ingin mengganti shell untuk pengguna Anda, Anda tidak perlu menjadi root. Ketik saja:
tanpa
sudo
dan tanpa argumen.Lihat juga
man chsh
:sumber
> whoami userid > chsh You may not change the shell for 'userid'.
Jika Anda lupa nama pengguna Anda, Anda dapat menggunakan
whoami
perintah untuk mengingat Anda.Jadi, coba dengan:
Jika memang, tidak ada garis yang dimulai dengan nama pengguna Anda di
/etc/passwd
file (yang tampaknya tidak bisa dijelaskan), Anda dapat menambahkan yang baru seperti ini:Lihat juga: Memahami / etc / passwd Format File .
sumber
Jika Anda mencoba ssh menjadi host jarak jauh dengan pengguna domain, Anda mungkin tidak dapat mengubah shell menggunakan
chsh
seperti yang disebutkan @Masoud. Tapi di sini ada solusi sederhana untuk kasus ini - setiap kali Anda masuk ke mesin, lakukan ini:ssh my-host -t "zsh --login"
atau
ssh my-host -t "cd /data/repos; zsh --login"
Jika Anda juga ingin masuk langsung ke direktori kerja yang berbeda.
sumber