Cara memperbaiki bash atau jalankan otomatis / bin / bash pada SSH login


16

Ketika masuk sebagai rootdi server saya semuanya berfungsi dengan baik, tetapi ketika saya masuk sebagai myusernamebash tidak berfungsi dengan benar.

Baris dimulai dengan:

$ 

dari pada

myusername@myserver:~$

dan semua tombol spesial seperti tombol panah, tombol tab, dll. tidak akan berfungsi.

Ketika saya mengetiknya bin/bashberfungsi lagi, tetapi saya ingin memperbaiki masalah atau menjalankan otomatis bin/bashsaat masuk. Bagaimana saya bisa memperbaikinya?

ssh  bash 

Jawaban:


16

Anda hanya perlu mengganti shell Anda. Sebagai pengguna itu, jalankan:

$ chsh -s /bin/bash

Kemudian keluar dan kembali.

Setelah melakukan ini, prompt tidak terlihat seperti yang Anda inginkan, Anda harus mulai mengubah variabel PS1 lingkungan Anda.


Ini sebenarnya agak berbahaya karena pertanyaannya adalah menanyakan tentang rootpengguna. Dia sepertinya tidak menggunakan Linux. Root harus tetap menggunakan shell default karena vendor mungkin akan mengandalkan itu menjadi kshatau apa pun yang mereka pilih. Sebagai gantinya, jawaban sebenarnya adalah "Anda tidak seharusnya login sebagai root".
bahamat

12

Anda perlu mengganti shell Anda. Jalankan perintah

chsh -s /bin/bash

lalu masuk lagi.

Namun, tidak semua pengguna memiliki hak untuk mengganti shell mereka sendiri. Jika Anda menggunakan sudoingat untuk menambahkan nama pengguna Anda ke chshperintah sebagai

sudo chsh <username> -s /bin/bash

jika tidak, Anda akan mengganti shell untuk root secara tidak sengaja.


Titik adil. Diperpanjang sedikit jawabannya.
Mikael Fremling

Saya sangat naif untuk mencoba: sudo chsh -s /bin/bashkarena pengguna saya tidak memiliki izin untuk mengganti shell. Jawaban Anda membantu saya menyelesaikannya. Terima kasih!
Edenshaw

5

Salah satu alasan yang mungkin adalah bahwa shell default myusername tidak bash.

Anda dapat memeriksa cangkang pengguna Anda saat ini dengan:

  • echo ${SHELL}
  • echo $0

Untuk mengubah shell pengguna secara permanen man chsh , lihat :

chsh -s /bin/bash

2

Jika kata sandi pengguna sudo Anda dinonaktifkan, Anda dapat mengedit /etc/passwdsecara langsung, menemukan baris di mana pengguna Anda berada dan mengubah jalur shell menjadi /bin/bash.

Berikut ini penjelasan tentang format / etc / passwd .


0

Hanya ingin menambahkan satu hal lagi.

Jika akses sudo diperlukan untuk mengubah bash untuk pengguna itu, maka Anda perlu menyebutkan nama pengguna Anda juga dalam perintah sudo karena tanpa nama pengguna itu akan berlaku untuk pengguna root.

$ sudo chsh -s /bin/bash <user>
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.