Solusi 1:
Saya bertanya tentang ini di saluran #suse di Freenode, dan Miuku menyarankan hal yang sama seperti Arul, namun, dia menyebutkan dua hal, jika saya menggunakan domain Windows saya dapat mengatur atribut loginShell.
Sayangnya, saya menggunakan domain samba, jadi itu tidak membantu. Tapi saran terakhirnya sempurna, dapatkan hasil dari:
getent passwd USERNAME
Ini akan memiliki entri yang valid yang setara untuk pengguna Anda di /etc/passwd, ambil ini, tempelkan ke /etc/passwd dan perbarui shell di bagian akhir untuk jalur valid dari shell yang ingin Anda gunakan. Dengan cara ini tidak mengubahnya untuk semua pengguna, dan Anda dapat memastikan bahwa shell ada di mesin tempat Anda mengonfigurasinya sebelum melakukan perubahan.
Solusi 2:
Saya memiliki masalah yang persis sama. Karena tidak semua mesin di domain saya memasang zsh, dan karena saya tidak ingin memengaruhi semua pengguna, saya akhirnya memasukkan .bashrc:
if [ -x /usr/bin/zsh ]; then
echo 'starting zsh'
# export SHELL=/bin/zsh #edit: this is probably not what you want, see the comment.
exec /usr/bin/zsh
fi
Ini mungkin janggal, tapi setidaknya menyelesaikan pekerjaan.
Solusi 3:
Jika Anda memiliki akses untuk mengedit konfigurasi pengontrol domain samba, Anda dapat menyetel properti berikut yang memungkinkan Anda menyetel shell di smb.conf
template shell = /bin/zsh
Tidak yakin apa yang terjadi jika Anda masuk ke mesin yang tidak memiliki zsh terinstal (tidak semua distro memiliki zsh terinstal secara default), tetapi dugaan saya adalah bahwa itu akan memanggil shell default distro.
Jika Anda hanya ingin mencobanya, cukup ketik zsh untuk mendapatkan subkulit yang saya yakin Anda sudah mengetahuinya.