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.