“/ Etc / passwd” dosyasını sildim ve giriş yapamıyorum


22

Kullanıcı adımı ve aynı zamanda ev dizinimi ( /home/username) değiştirmeye çalışıyordum ve sistemim çökmeye başladı. passwdDosyayı sildim ancak adında bir yedeğim vardı passwd_bkp. Bunu adlandırmak çalıştı passwd_bkpolarak passwdve işe yaramadı. Hiçbir komut yürütülmüyordu ... Bir terminal penceresindeydim.

Sistemimi yeniden başlattım ve şimdi giriş yapamıyorum. GRUB iki seçenek sunar: Linux ve kurtarma modu.

Bir oturumu root olarak açmaya çalıştım ama dosya sisteminin bozuk olduğunu söylüyor. Ben edemez benim dosyalara erişmek.

Tüm dosyalarımı kaybettim mi?


1
Takip eden sorunuz için: Kurtarma tekniğini kullanarak şifrenizi değiştirin. Bakınız: askubuntu.com/questions/24006/…
david6

1
Bir kullanıcı giriş yapamıyorum zaman @ david6 hiçbir olmadığından /etc/passwddosya , parolayı sıfırlamak için de mümkün değildir. Dosyayı geri yüklemeniz (veya yeniden oluşturmanız) gerekir passwd. Ve bir kez yapıldıktan sonra, genellikle şifreyi sıfırlamanız gerekmez.
Eliah Kagan

@Eliah Kagan: Kabul ettim, ancak / etc / passwd (sözde) yedek kopyadan geri yüklendikten sonra takip sorusunu cevaplıyordum .
david6, 07

Hata hakkında daha spesifik olmanız gerekir.
psusi

Yanıtlar:


32

Hayır, açıklamanızla birlikte, dosyalarınızı hiçbirini kaybetmediniz ( /etc/passwdhangisini sildiğiniz, hangilerini yedeklediğiniz hariç ).

Bir Ubuntu canlı CD / DVD'sini veya canlı bir USB flash sürücüyü önyükleyin. Seç Try Ubuntu(değil Install Ubuntu). Masaüstü yüklendiğinde, bir Nautilus (dosya tarayıcısı) penceresi açın. Ubuntu sisteminizin bölümünü aşağıda bulabilirsiniz Devices. Monte etmek için üzerine tıklayın.

Şimdi yedeklemeyi geri yükleyebilirsiniz. Bununla birlikte, bunu kök olarak yapmanız gerekir. İşte bunu yapmanın oldukça kolay bir yolu.

  1. Bir Terminal penceresi açın ( Ctrl+ Alt+ T). Terminalde, anahtarı yazın cdve yazın Space, ancak Enterhenüz basmayın .

  2. Nautilus'ta etckurulu Ubuntu sisteminin içindeki dizini bulun . (Bu, etccanlı CD dizininin aynısı değildir . etcYüklü Ubuntu sisteminin içindeki dizin, yeni kurduğunuz bölümdedir.)

  3. Bu etcdizini, tam yolunu Terminal'e yapıştırarak Terminal'e sürükleyerek cd ...komutu tamamlayın .

  4. EnterKomutu çalıştırmak için basın . Şimdi passwddosyanızı içeren dizinde bulunuyorsunuz . Yedek dosyanızın passwd_bkpda burada bulunduğunu farz ediyorum .

  5. Bu komutu çalıştırın:

    sudo cp passwd_bkp passwd
    

Bu, passwddosyayı yedeklemenizden geri yükler; bu nedenle şimdi CD / DVD veya USB flash sürücüyü yeniden başlatabilmeniz, yeniden başlatabilmeniz ve takılı Ubuntu sisteminize yeniden başlatabilmeniz gerekir. Kurulu Ubuntu sisteminiz tekrar çalışmalı.


Gelecek için, kırpma işlemini düzenlemek tavsiye edilmez bilmelidir /etc/passwd, /etc/group, /etc/shadow, veya /etc/gshadow. Bunun yerine, sisteminizdeki kullanıcı ve gruplarda ihtiyaç duyduğunuz değişiklikleri yapmak için Ubuntu'nun bir parçası olarak sağlanan yardımcı programları kullanmalısınız. Muhtemelen bunu Sistem Ayarlarında veya ile düzenleyebileceğinizi biliyorsunuzdur users-admin. Ancak, bunun için yapılandırma dosyalarını kendiniz düzenlemekten çok daha güvenli ve daha kolay olan çok güçlü komut satırı yardımcı programları da var. İşte Ubuntu'daki en ilgili yardımcı programlar hakkındaki dökümantasyon:

Sen edebilirsiniz adınızı değiştirmek bu araçlardan bazıları ile. Bu cevap bir yolu ayrıntılı olarak açıklar. Ancak, bazı uygulamaların kullanıcı adınızın aynı kaldığını varsaydığını (şu anda bir yorum tarafından değinildiği gibi) farkında olmalısınız. Bu nedenle, kullanıcı adınızı değiştirmek bazı sorunlara neden olabilir.


Çok teşekkür ederim. Saat sabahın dördü saat Güney Brezilya'da ... Uyuyamadığım için çok endişelendim. Bunu deneyeceğim ...
joao rodrigo leao

2
Yedekleme yapmadıysanız, /etc/passwd-veya kullanmayı deneyin /var/backups/passwd.bak. Doğru izinleri ayarladığınızdan emin olun. Örnek:sudo install -m644 /etc/passwd- /etc/passwd
Lekensteyn

4

Canlı bir önyüklemeye alternatif olarak e, kurtarma modu girişini düzenlemek için grub menüsünde tuşuna basabilir init=/bin/shve çekirdek argümanlarına ekleyebilirsiniz . Bu işlem, dosya sistemini okuyup yeniden yazdıktan sonra yedek dosyayı tekrar orijinaline kopyalayabileceğiniz bir kök kabuğa bırakacaktır mount -o remount,rw /.


1
Bunun işe yarayacağına emin misin? Olmadan /etc/passwd, root adında bir kullanıcı yoktur ve uid = 0 olan bir kullanıcı yoktur . İhtiyaç duyulan kuruluşlar mutlaka bu olağandışı koşullar altında çalışacak mı?
Eliah Kagan

1
@EliahKagan, her zaman kullanıcı kimliği = 0 olan bir kullanıcı vardır, çünkü çekirdeğin ilk işlemi başlattığı kullanıcı kimliğidir . cpveya mv/ etc / passwd dosyasına gerek yok.
psusi

bu benim aptal popomu kurtardı! / crontab ile ilgili / etc / shadow dizininde manüel düzenleme. Birinin 'gölge' ile uğraşmadığını bilmiyordum .... f ** ckd olduğumu sanıyordum ama @ psusi için tanrıya şükrediyordum ... , dağını takip etti ve / etc /
backup'taki

2

Bu cevabı okumaya devam etmeden önce ilk Eliah Kagan'ın cevabını okumalısınız. Durumla nasıl başa çıkılacağını ve neden / etc / passwd'nin manuel olarak değiştirilmesinin gerekli olmadığını açıklıyor.

Her neyse, ne yaptığınızı gerçekten biliyorsanız ve el ile düzenlemeniz gerekiyorsa/etc/passwd , bunu yapabilirsiniz, ancak yine de en sevdiğiniz düzenleyiciyle dosyaları değiştirmemelisiniz. Bunun yerine aracı var

vipw

Man sayfalarından:

The vipw and vigr commands edits the files /etc/passwd and /etc/group,
respectively. With the -s flag, they will edit the shadow versions of those
files, /etc/shadow and /etc/gshadow, respectively. The programs will set
the appropriate locks to prevent file corruption.

Örneğin, bir kullanıcı UID'sini değiştirmek istersem, bildiğim kadarıyla dosyaları elle düzenlemek tek yoldur. Ayrıca bir kullanıcı şifresini değiştirmek ve ardından bilmeden bir önceki şifresine geri dönmek istiyorsanız, böyle bir yol yoktur usermod. Ancak karma şifreyi gölge dosyadan kaydederseniz, kullanıcının şifresini değiştirdikten sonra gölge dosyasını düzenleyerek tekrar karma şifreyi ekleyebilirsiniz vipw -s.


1

@ EliahKagan'ın cevabını takip ettikten sonra giriş yapamıyorum lightdmve hesabım listelenmedi. passwdDosyanın izninin uygun şekilde kurulmadığını öğrendim ; lightdm kullanıcısı buna erişemedi. İşte nasıl düzelttim:

Bir tty Ctrl+ Alt+F1

değiştirmek /etcdizinde

cd /etc

Sonra izinleri değiştirin. 644

sudo chmod 644 passwd

O zaman yapmak ls -la

izin dizesi böyle görünmelidir

-rw-r--r--

-1

Eğer giriş yapabiliyorsanız sadece terminali açıp şunu deneyin:

sudo cp /etc/passwd- /etc/passwd
sudo chmod 644 /etc/passwd

Başka

Kurtarma moduna önyükleme veya Ubuntu canlı Cd. Ardından, eski sürücünüzü takın:

mkdir /olddrive
mount /dev/hda5 /olddrive
assuming that your old drive is on /dev/hda5.
then, cd to /olddrive/etc
type:
echo "root::0:0:Superuser:/:/bin/bash" > passwd

sonra yeniden başlatın. Bu root için hiçbir şifre koymayacak.

Ardından, giriş yapabilir, hesaplarınızı tekrar oluşturabilirsiniz, vb.

Ayrıca adı verilen yedeği de kullanabilirsiniz (sanırım) /etc/passwd-

Düzenleme : (daha önce denememiş olduğum başka bir yöntem, ancak bunun da çalışması gerektiğini düşünüyorum)

  • GRUB'u açılışta başlat ( Escönyükleme sırasında basın )
  • Basın e(kurtarma modu)
  • eÇekirdek ile başlayan çizginin üzerine basın
  • Basın Spaceve girininit=/bin/bash
  • Basın Enter
  • Basın b
  • Komut isteminde şunu yazın: cp /etc/passwd- /etc/passwd
  • Tekrar GRUB'a yeniden başlat
  • Basın e(kurtarma modu)
  • eÇekirdek ile başlayan çizginin üzerine basın
  • Basın Spaceve girininit=/bin/bash
  • Basın Enter
  • Basın b
  • Komut isteminde yazın mount -o remount,rw /
  • Tür passwd YOURUSERNAMEHERE(Eğer bir kullanıcı listesi için kullanıcı adı türünüzü bilmiyorsanız ls /home(bu bir L harfi ve küçük S harfi).
  • İstendiğinde yeni şifreyi girin
  • Normal önyüklemeye yeniden başlayın.

Kaynak

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.