ZSH dihapus, tidak bisa login ulang

14

Jadi saya telah menginstal zshdan saya tidak menyukainya. jadi saya lakukanapt-get remove zsh

Dari titik itu saya tidak bisa login ulang, saya klik pengguna saya .. dan kemudian kembali ke layar login. Saya hanya bisa masuk dengan Guest session.

Saya pikir masalahnya disebabkan karena shell defualt pada pengguna saya adalah zsh dan tidak ada lagi ..

Bagaimana saya bisa menginstalnya kembali dari sesi tamu untuk mengganti shell default pengguna saya untuk pengguna tamu?

Bahkan mencoba log dengan ctrl+alt+f2/6saya ketik pengguna dan kata sandi saya. login berhasil tetapi saya yang dilemparkan kembali ke login.

Ada ide?

tubu13
sumber
Pada pemikiran kedua masalah shell kemungkinan tidak ada kaitannya. Tidak ada shell pengguna yang muncul setelah DM dimuat sebelum DE dimuat (dan itu mungkin tidak akan menjadi masalah juga). Dan saya juga tidak yakin dengan ~/.bashrc- ~/.profileloop: Saya sudah menguji baik membersihkan shell pengguna dan membuat ~/.bashrc- ~/.profileloop di VM dan saya selalu bisa login melalui LightDM, meskipun saya belum bisa login melalui konsol dengan ~/.bashrc- ~/.profileloop (tapi tetap saja, LightDM malah bekerja). Bagaimanapun Anda harus menerima jawaban saya.
kos

Jawaban:

16

Pengguna tamu tidak diberikan izin untuk menjalankan sudoatau pkexec, yang (kecuali Anda root, yang bukan Anda) diperlukan untuk mengganti shell pengguna lain.

Jadi satu-satunya solusi yang terjadi pada saya adalah boot ke shell root dan mengubah shell pengguna sebagai root:

chsh -s /bin/bash user

Di mana usernama pengguna pengguna Anda.

kos
sumber
Orang bertanya-tanya bagaimana Anda memperbaikinya ketika shell root juga zsh ... LiveCD?
Kevin
@Kevin Jawaban ini kemungkinan salah. Shell tidak memiliki kaitan dengan pengguna yang tidak masuk ke DE, karena tidak ada shell pengguna yang muncul setelah DM telah dimuat sebelum DE dimuat. Saya tidak tahu apakah ada opsi yang lebih baik jika seseorang berhasil mengunci diri mereka sendiri dengan cara itu, tapi saya kira menggunakan DVD langsung dan mengubah /etc/passwdsecara manual akan berhasil.
kos
4
@Kevin Mungkin dengan opsi boot seperti init=/bin/bash.
user253751
2

Login sebagai root atau boot ke shell root dan edit entri shell di / etc / passwd ke "/ bin / sh". Kemudian Anda dapat masuk lagi sebagai diri Anda sendiri dan mengubah hal-hal dari sana.

Ted Cahall
sumber
1

Jadi tambahan untuk apa yang dikatakan @kos ..

Untuk beberapa alasan saya menambahkan source ~/.profileke file .bashrc saya (tidak tahu mengapa .. membacanya di suatu tempat) Dan .profilefile saya dimuat .bashrcyang menyebabkan pemuatan melingkar !.

Menghapus source..solusi + @kos berhasil!

tubu13
sumber
Linux desktop memiliki jenis paradigma .profile-for-env-vars dan one-per-login yang rusak / .bashrc-untuk-alias. Karena kadang-kadang Anda membutuhkan env vars yang diatur untuk bekerja, saya dapat melihat mengapa orang mungkin berpikir itu ide yang baik untuk source ~/.profiledari .bashrc. (Masuk ke sesi desktop mungkin tidak sumber profil Anda untuk mengatur env vars untuk semua anak dari sesi.)
Peter Cordes
1

Untuk siapa yang memiliki masalah menghapus instalan zsh. Coba ini ikuti langkah-langkahnya.

  1. Masuk sebagai root melalui mode pemulihan. Anda dapat melihat bagaimana melakukannya di jawaban ini./ubuntu//a/92558/104228
  2. Setelah Anda login sebagai root. Terbuka /etc/passwd. Temukan entri pengguna Anda dan ubah dari/usr/bin/zsh menjadi /bin/sh. Simpan file dan mulai ulang sebagai langkah normal. Anda harus masuk secara normal.
  3. Setelah Anda me-reboot ubuntu Anda. Anda akan menemukan shell Anda terlihat sangat buruk. Jalankan perintah ini chsh -s /bin/bash. Ketikkan kata sandi Anda dan masukkan. Shell Anda akan terlihat baik sekarang.
  4. Ketik sudo apt-get purge --auto-remove zshuntuk membersihkan paket dependensi lain dari zsh.

Saya harap langkah ini akan membantu orang lain yang memiliki masalah yang sama dengan saya.

PS. Bahasa Inggris saya bukan bahasa utama. Saya harap Anda bisa mengerti saya.

EThaizone Jo
sumber