Kök kabuğu yanlışlıkla değişti. Geçerli bir kabuğa nasıl dönüştürebilirim?


19

Yanlışlıkla girdim

chsh -s /usr/bin 

onun yerine

chsh -s /bin/bash 

ve şimdi bir kök kabuğa giriş yapamıyorum, elle bir bash kabuğunu kök olarak nasıl başlatabilirim?


bunu hangi bağlamda yaptınız. Geçerli bir terminalde, kullanıcılar için varsayılan kabuk?
28.08.2016

sudo grubunda kullanıcı yok mu?
Rui F Ribeiro

3
does sudo vipwişi?
Rui F Ribeiro

1
@RuiFRibeiro evet teşekkürler, o dosyadaki varsayılan kök kabuğunu değiştirebileceğimin farkında değildim
ChiseledAbs

1
Bu durumda gerekli değildir, ancak yanlışlıkla kök içeren bir felaket oluşturduğunuzda, genellikle makineyi tek kullanıcı moduna alabilir, sorunu düzeltebilir ve daha sonra çok kullanıcılı moda dönebilirsiniz.
boardrider

Yanıtlar:


29

Kök erişime sahip olmasa da, sudo grubundaki bir kullanıcı yine de ayrıcalıklı komutlar çalıştırabilir - hata sudo chshsudo'da değil, komutun başka bir yerinde (örn. Chsh hatası) görünüyor.

Gibi sudo görünüşe göre çalışıyor.

Passwd dosyası aşağıdakilerle düzenlenebilir:

sudo vipw

Ve kök kabuk elle değişti.

( /etc/passwdgenellikle ilk satırı )

root:x:0:0:root:/root:/bin/bash

Fom adam vipw

Vipw ve vigr komutları sırasıyla / etc / passwd ve / etc / group dosyalarını düzenler. -S bayrağıyla bu dosyaların gölge sürümlerini sırasıyla / etc / shadow ve / etc / gshadow düzenlerler. Programlar, dosya bozulmasını önlemek için uygun kilitleri ayarlayacaktır.


3
Hiç bilmiyordum vipwve vigrteşekkür ederim! Her zaman kullandımsudo vim /etc/passwd
kedi

3
Ayrıca ilginizi çekebilir visudo sudo.ws/man/1.8.15/visudo.man.html , @tac
Rui F Ribeiro

3
Veya sudo -ebu, herhangi bir düzenleme için bu kilitleme düzenleme özelliğini gerçekleştirir.
kojiro

16

Başka bir hesaba erişiminiz olduğunu varsayarsak, başka bir seçenek de varsayılan kabuğu kullanarak aşağıdakileri kullanarak el ile geçersiz kılmaktır su --shell=/bin/bash:

-s, --shell =
/ etc / shells izin verirse SHELL SHELL'i çalıştırır

Bunun başlıca avantajı, ayrıcalıklı bir hesaba değil, yalnızca başka bir hesaba erişim gerektirmesidir .


8

Güvenlik nedeniyle, ister metinsel ister grafiksel olsun, komutları farklı bir kullanıcı olarak çalıştırmanıza izin veren suve sudobunların tümü, bu komutu hedef kullanıcının kabuğundan çalıştırır. Hedef kullanıcının kabuğu işlevsel değilse, sonuçları gördünüz :-(

Hala bir yerde çalışan veya setuid-root ikili dosyası ya da bunu atlamanızı sağlayan bir şey gibi hala işlevsel bir kök kabuğunuz yoksa, bir kurtarma sistemi veya canlı görüntü kullanarak sorunu yeniden başlatıp düzeltmek muhtemelen en iyi seçimdir.

Kurtarma sistemini başlatın , kabuğu düzeltmek için gerçek sisteminizin kök dosya sistemini bir yere monte edin, deyin /mnt/foove düzenleyin /mnt/foo/etc/passwd. Kurtarın, bağlantısını kesin ve işiniz bitti.


merak ederseniz, bunu yaparsanız ve / etc / passwd dosyası düz metin yerine karma yaparsa ne olur?
28.08.2016

1
/etc/passwddüz metin değil mi? Bunu en azından on yıldır görmedim. Bazı sistemlerde bu hala bir şey mi? Her neyse, sanırım chroot /mnt/foo chsh -s /bin/bashbu durumda hile yapabilir mi?
Celada

Ben hiçbir zaman açıklanan sorun yoktu, ancak ben / bilgisayarları hackler önlemek gibi düz metin / / / passwd olması gereken kilitli sistemleri ile çalışmak ve erişim elde ederseniz sistem daha da bu şekilde taviz vermemek. Hmm işe yarayabilir, diyelim ki aslında çalışıp çalışmadığını asla denemek zorunda değilim.
jgr208

/ Etc / passwd dosyasını bir kullanıcı hesabından sudo ile düzenleyebildim, kabuğun bu dosyada tanımlandığının farkında değildim, teşekkürler
ChiseledAbs

@ChiseledAbs oh, öyleydin? Senin için iyi, problemini çözmene sevindim. Sana izin vereceğini düşünmemiştim.
Celada

6

init=/bin/bashÇekirdek komut satırınıza ekleyin (grub ile önyükleme yapıyorsanız e, önyükleme girişini düzenlemek için basın ) ve parola girmenize bile gerek kalmadan kök olarak çalışan bir bash kabuğuna sahip olursunuz. Kök dosya sisteminiz büyük olasılıkla yine de salt okunur olarak monte edilecek, bu yüzden önce yeniden takmanız gerekecek, ardından kabuğu geri değiştirebilirsiniz chsh.


4

sudo usermod -s /bin/bash jdoe

kabuğunu değişecek jdoe için bash. Sonra sudo egrep jdoe /etc/passwddoğrulamak için yapabilirsiniz .

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.