web-dev-qa-db-ja.com

削除された/ etc / passwdファイルを回復する方法は?

/etc/passwdファイルを削除しましたが、今はログインできません。ルートパスワードがわからないため、多くのパスワードを試しましたが、どれも機能しませんでした。

どうすれば修正できますか?

3
Eren

これをグラフィカルに行う手順は次のとおりです。

  1. Ubuntuブータブルメディアを使用して、ライブUbuntu環境を起動します。

  2. Nautilusファイルマネージャーを起動し、Ubuntuパーティションをマウントします(スナップショットでは129 GB Filesystemです)。 snap1

    (ヒット Ctrl + L パーティションのUUIDを確認します。) snap2

  3. Root権限でNautilusを起動します(を押します Alt + F2 gksu nautilusと入力してEnterキーを押します); snap3

  4. Ubuntuパーティションは、UUIDとともにサイドバーに表示されます。クリックしてマウントし、/etcディレクトリに移動します。 snap4

  5. /etcディレクトリで、下にスクロールしてpasswd-という名前のファイルを見つけ、ディレクトリにこのコピーを作成します(press-hold Ctrl キー、マウスポインターをファイルの上に置き、左マウスボタンを長押しドラッグマウスポインター、そしてリリースマウスボタンの後に Ctrl 同じディレクトリにコピーを作成するキー。 passwd- (copy)という名前のファイルが作成されます); snap5

  6. コピーファイルを選択し、右クリックしてrenameを選択します。次に、ファイルの名前をpasswdに変更します。 snap6

  7. ファイルの名前をpasswdに変更した後、右クリックしてコンテキストメニューからPropertiesを選択し、タブでPermissionsに適切なパーミッション、つまり所有者を設定しますrootにはReadおよびwriteパーミッションが必要ですGroupおよびOthersアクセスをRead-に設定しますonlyおよびプロパティウィンドウを閉じます。 snap7

  8. システムを再起動すると、パスワードでログインできるはずです。


ライブ環境で端末を使用して同じことを行うことができます。

手順:

  1. ライブUbuntuセッションを起動します。

  2. ターミナルまたはttyを開き、コマンドを入力します。

    Sudo fdisk -l
    

    (そして、Ubuntuパーティションのデバイス名は/dev/sdXという形式になります。)

  3. デバイスをマウントし、

    Sudo mount /dev/sdXY /mnt
    

    sdXYをターゲットデバイスに置き換えます。)

  4. cdターゲットシステムへ/etcディレクトリ:

    cd /mnt/etc
    
  5. バックアップファイルを使用して復元し、適切な権限を設定します。

    Sudo cp passwd- passwd
    Sudo chmod 644 passwd
    

    または、/var/backups/passwd.bakのバックアップを使用します。

    Sudo install -m 644 /mnt/var/backups/passwd.bak /mnt/var/backups/passwd
    

    (Lekensteynが comments で指摘したように)

  6. 次に、コンピューターを再起動します。

    Sudo reboot
    
5
precise

この質問にはすでに適切な答えがあるようです。@ Lekensteynの comment を拡張します。

Sudo cp /var/backups/passwd.bak /etc/passwd
Sudo chmod 644 /etc/passwd
5
Wilf

ログインできる場合は、ターミナルを開いてこれを試してください:

Sudo cp /etc/passwd- /etc/passwd

Sudo chmod 644 /etc/passwd

Else

復旧モードで起動するか、Ubuntu live Cdから起動します。次に、古いドライブをマウントします。

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

その後再起動します。これにより、rootのパスワードは設定されません。

その後、ログインしたり、すべてのアカウントを再度作成したりできます。

(i think)/etc/passwd-というバックアップを使用することもできます

編集:(別の方法「私はそれが動作するはずだと思う前にそれを試さない」)

  • 起動時にGRUBを起動します(起動中にESCを押します)
  • Eを押します(回復モード)
  • Kernelで始まる行でeを押します
  • スペースバーを押して「init=/bin/bash」と入力します
  • Enterを押す
  • Bを押す
  • コマンドプロンプトで「cp /etc/passwd- /etc/passwd」と入力します
  • GRUBから再起動します
  • Eを押します(回復モード)
  • Kernelで始まる行でeを押します
  • スペースバーを押して「init =/bin/bash」と入力します
  • Enterを押す
  • Bを押す
  • コマンドプロンプトで「mount -o remount,rw /」と入力します
  • 「passwd YOURUSERNAMEHERE」と入力します(ユーザーのリストのユーザー名タイプ「ls/home」(小文字のLと小文字のS)がわからない場合)
  • プロンプトで新しいパスワードを入力してください
  • 通常のブートにリブートします。

ソース

3
Maythux