Tidak dapat exec / bin / false: tidak ada file atau direktori tersebut

10

Saya mencoba membuka Layar GNU dengan perintah berikut di Mac OS saya:

host:~ user$ screen

Terminal layar terbuka tetapi cepat mati dengan pesan kesalahan:

Tidak dapat exec / bin / false: tidak ada file atau direktori tersebut

Terminal saya dikonfigurasi untuk membuka bashshell saat startup. Saya sudah mencoba mengatur terminal shell sh, itu memberikan kesalahan yang sama.

Namun, ketika saya menjalankan screenperintah sebagai sudo, maka perintah berhasil.

Bagaimana cara mengatasinya untuk pengguna normal?

sultan
sumber
2
Cari /bin/falsedi file rc Anda ( .bashrc, .bash_profiledll.) Juga periksa .screenrc.
choroba

Jawaban:

9

Lihat skrip inisialisasi shell Anda untuk bash, atau screenfile konfigurasi, dan lihat apakah ada tempat falseyang digunakan dengan jalur eksplisit /bin/false.

Di macOS, falseutilitasnya berada di /usr/bin, bukan di /bin.

Jika gagal, lihat apakah shell login Anda karena alasan aneh diatur /bin/false, baik dengan memeriksa /etc/passwdatau melihat "Opsi Lanjutan" di bagian "Pengguna & Grup" pada System Preferences (Anda mendapatkannya dengan mengklik kanan pada pengguna Anda) dalam daftar akun pengguna, dan Anda dapat mengganti shell di sini juga). Seseorang mungkin secara tidak sengaja mengikuti tutorial / HOWTO yang mengatur pengguna /bin/falsesebagai shell default mereka.

Ketika Anda menjalankan screendengan sudoAnda menggunakan rootfile init shell / layar. Inilah mengapa itu berhasil.

Kusalananda
sumber
2
Maaf, menekan enter secara tidak sengaja memposting komentar yang tidak lengkap. Saya memeriksa file-file berikut: / etc / passwd dan ~ / .screenrc. Namun, sepertinya shell saya sudah setup dengan / bin / false sebagai shell default. Ketika saya melakukan "echo $ SHELL" itu memberi "/ bin / false". Melakukan "ekspor SHELL = / bin / bash" memperbaiki masalah ini. :)
sultan.of.swing
1
@ sultan.of.swing Bagus! Anda harus mengubah shell default Anda di System Preferences. Juga, jika ini menyelesaikan masalah Anda, mohon pertimbangkan untuk menerima jawabannya
Kusalananda
5

Pergi ke preferensi pada Terminal dan kemudian pergi ke umum, lalu di bawah 'Shell terbuka dengan' pilih Perintah dan ketik bash -l

Ravi
sumber
3
Tolong jelaskan apa yang dilakukan dan bagaimana ini menyelesaikan masalah.
guntbert
apakah itu "bash - <Capital Eye>" atau "bash- <Uncial Ell>"?
Reb.Cabin
jawaban terbaiknya adalah
Reb.Cabin