Saya belajar perintah baru, setidaknya saya pikir, karena perintah ini:, chsh
tidak berperilaku seperti yang dijelaskan.
Itu digambarkan bekerja seperti ini:
cat /etc/shells
untuk mengetahui, shell mana yang dipasang, sehingga Anda dapat memilih di antara mereka.- lakukan
echo $SHELL
untuk mengetahui, shell mana yang Anda gunakan. - pilih salah satu dari kerang dan ketik
chsh -s /path/to/shell
- masukkan kata sandi dan verifikasi dengan
echo $SHELL
, bahwa Anda berada di shell baru.
Saya telah melakukan ini dan saya tidak mendapatkan pesan kesalahan saat memasukkan kata sandi, tetapi saya masih berada di shell yang sama.
% echo $SHELL
/bin/bash
% cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
% chsh -s /bin/sh
Password:
% echo $SHELL
/bin/bash
shell
ubuntu
command-line
sharkant
sumber
sumber
Jawaban:
Logout dan log in lagi.
The
chsh
perintah akan memperbarui/etc/passwd
file, namun itu tidak mengubah arus shell maupun nilai dari$SHELL
variabel dalam shell saat ini (tidak memiliki cara untuk melakukan itu). Inilah alasan Anda perlu masuk lagi; Anda harus memulai sesi login baru agar perubahan berlaku.sumber
/etc/passwd
tidak dibaca sampai Anda masuk lain kali. Anda harus keluar sepenuhnya, dan masuk lagi agar perubahan diterapkan. Jika Anda gagal melakukan ini, maka me-reboot mesin juga akan berfungsi.Menggunakan perintah utilitas usermod bekerja dalam kasus saya. Berjalan di ubuntu 18.04.
grep nameofuser /etc/passwd
sudo usermod --shell /bin/bash nameofuser
grep nameofuser /etc/passwd
sumber