Chsh çalıştırmak kabuk değiştirmez


19

Kabuğumu bash'den zsh'ye değiştirmek istiyorum.

Kullanıcı zol olarak oturum açarken aşağıdaki çalıştırmayı denedim:

$ chsh -s /bin/zsh
$ sudo chsh -s /bin/zsh zol
$ su -c 'chsh -s /bin/zsh zol'
# The above all results with:
$ password:
$ chsh: Shell not changed.

# zsh exists in /etc/shells.. 
chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh

Ne yanlış olabilir? Nasıl düzeltebilirim?


Zol olarak herhangi bir argüman olmadan 'chsh' çalıştırmayı denediniz mi?
George M

Ldap / nis gibi bir şey mi kullanıyorsunuz?
Ulrich Dangel

Daha da önemlisi: Neden size daha fazla bilgi vermiyor? Bu mesaj deneyimli bir sistem için iyi olabilir, ancak çoğu insan için düpedüz kaba. 5 yıl boyunca aynı sorunla karşı karşıyayım ve insanlar linux'un neden son 20 yılı masaüstünde geçirmediğini merak ediyorlar.
flurbius

Kabuğunuzun anında değişmesini mi beklediniz? Giriş kabuğunuzu ile değiştirirsiniz chsh, yani tekrar giriş yapmanız gerekir.
Kusalananda

Yanıtlar:


17

Bilgileri değiştirmeye çalıştığınızda / etc / passwd (vim / etc / passwd) öğesini açtıysanız kullanıcı hesabı değişiklikleri kaydedilmez.

Alternatif: usermod ile deneyin (zol olarak):

$ usermod -s /bin/zsh 

veya

$ sudo usermod -s /bin/zsh zol

Bu da işe yaramazsa, /etc/passwdelle düzenleyin .

sudo vipw
# set zol's shell to /bin/zsh
:wq

6
kullanın vipwyerine vimonlar uygun dosya kilitlerini belirtildiği gibi.
Ulrich Dangel

"/ Etc / passwd dosyasını açtıysanız" kullanıcı hesabı değişiklikleri kaydedilmeyecek "- neden?
Thanatos

O da çalışmıyor. Linux sanal makinesini (centos7) yeniden başlattığımda, şimdi sorun yok!
WeizhongTu

1

Gördüğünüzde "chsh -l" ne zaman çalıştırılır:

/usr/bin/zsh
/bin/zsh

Sonra kullan:

chsh -s /usr/bin/zsh

Uyarı: Komutlar Fedora 25'te çalıştırıldı, ubuntun'da "-l" seçeneği çıktı.


-lbenim için geçersiz bir seçenektir. Ubuntu 16.04
byxor

Maalesef, komutların çalıştığı dağıtım hakkında bilgi vermiyorum. Benim durumumda Fedora 25 üzerinde test yaptım. Ubuntu üzerinde çalışıyorum ve "-l" seçeneğinin dışarıda olduğunu doğrulıyorum.
lourencoccc

Ne olursa olsun, chsh -smükemmel çalıştı. Teşekkürler.
byxor

Seçenek Manjaro'da geçerlidir, ancak kabuğu değiştirmeyi hala reddetmektedir.
flurbius

0

Görüyorsanız chsh: Shell not changed., kabuğun zaten değiştiği anlamına gelebilir.

Hangi kabuğun listelendiğini kontrol edin:

cat /etc/passwd | grep `cd; pwd`

Doğruysa, değişikliğin geçerli olması için oturumu kapatıp tekrar açın.


0

Sadece bununla karşılaştı. Ben giriş ve çıkış ne yaptığım önemli değil benim kabuk değiştirmek olmaz ama / etc / kabukları ve / etc / passwd listelenmiştir.

nihayet benden şaşkına döndü: Belki başka bir seansla giriş yaptım?

Ben de yaptım

# who

ve diğer makinelerden başka açık oturumlar yaptığımı doğruladı:

dom  pts/0        Nov 6 13:53 (10.1.6.121)
dom  pts/1        Nov 5 12:30 (10.1.6.165)
dom  pts/2        Nov 4 12:33 (10.1.6.197)

Sonra yaptım:

pkill -KILL -u dom

Hemen çıkış yaptım ve tekrar giriş yaptıktan sonra: Voila! Kabuk değiştirildi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.