ユーザー名とホームディレクトリ(/home/username
)を変更しようとして、システムがクラッシュし始めました。 passwd
ファイルを削除しましたが、passwd_bkp
という名前のバックアップがありました。このpasswd_bkp
の名前をpasswd
に変更しようとしましたが、機能しませんでした。コマンドは実行されていませんでした...私はターミナルウィンドウにいました。
システムを再起動しましたが、ログインできません。GRUBには、Linuxとリカバリモードの2つのオプションがあります。
ルートとしてセッションを開こうとしましたが、ファイルシステムが破損しています。 I できませんファイルにアクセスします。
すべてのファイルを失いましたか?
いいえ、説明があれば、ファイルは失われませんでした(削除したがバックアップした/etc/passwd
を除く)。
UbuntuライブCD/DVDまたはライブUSBフラッシュドライブを起動します。 Try Ubuntu
(Install Ubuntu
ではなく)を選択します。デスクトップがロードされたら、Nautilus(ファイルブラウザ)ウィンドウを開きます。 Ubuntuシステムのパーティションは、Devices
の下にあります。それをクリックしてマウントします。
これで、バックアップを復元できます。ただし、rootとして実行する必要があります。簡単な方法を1つ紹介します。
ターミナルウィンドウを開きます(Ctrl+Alt+T)。ターミナルで、cd
と入力し、 Space キーを押しますが、押さないでください Enter まだ。
Nautilusで、インストールされたUbuntuシステム内のetc
ディレクトリーを見つけます。 (これは、ライブCDのetc
ディレクトリと同じではありません。インストールされたUbuntuシステム内のetc
ディレクトリは、マウントしたばかりのパーティションにあります。)
このetc
ディレクトリをターミナルにドラッグすると、ターミナルへのフルパスが貼り付けられ、cd ...
コマンドが完了します。
押す Enter コマンドを実行します。これで、passwd
ファイルを含むディレクトリに移動しました。バックアップファイルpasswd_bkp
もここにあると想定しています。
次のコマンドを実行します:
Sudo cp passwd_bkp passwd
これにより、バックアップからpasswd
ファイルが復元されるため、リブートし、CD/DVDまたはUSBフラッシュドライブを取り外して、インストール済みのUbuntuシステムを再起動できるようになります。インストールしたUbuntuシステムが再び機能するはずです。
将来的には、/etc/passwd
、/etc/group
、/etc/shadow
、または/etc/gshadow
を手動で編集することはお勧めできません。代わりに、Ubuntuの一部として提供されるユーティリティを使用して、システム上のユーザーとグループに必要な変更を加える必要があります。システム設定またはusers-admin
でこれを編集できることをご存知でしょう。しかし、このための非常に強力なコマンドラインユーティリティもあり、構成ファイルを手動で編集するよりもはるかに安全で簡単です。 Ubuntuで最も関連性の高いそのようなユーティリティに関するドキュメントは次のとおりです。
adduser
/ addgroup
deluser
/ delgroup
usermod
groupmod
useradd
(adduser
よりも下位レベル、通常は代わりにadduser
を使用する必要があります)userdel
(deluser
よりも下位レベル、通常は代わりにdeluser
を使用する必要があります)groupadd
(addgroup
よりも下位レベル、通常は代わりにaddgroup
を使用する必要があります)groupdel
(delgroup
よりも下位レベル、通常は代わりにdelgroup
を使用する必要があります)passwd
gpasswd
pwck
grpck
ユーザー名の変更 これらのユーティリティのいくつかを使用できます。 この回答では1つの方法を詳細に説明しています。 ただし、一部のアプリケーションではユーザー名が同じであると想定していることに注意する必要があります(現在コメントがあります)。そのため、ユーザー名を変更すると問題が発生する可能性があります。
Livecdを起動する代わりに、grubメニューでe
を押してレスキューモードエントリを編集し、カーネル引数にinit=/bin/sh
を追加できます。これにより、mount -o remount,rw /
を使用してファイルシステムを読み書き可能に再マウントした後、バックアップファイルを元のファイルにコピーできるルートシェルに移動します。
この答えを読み続ける前に、最初のエリアカガンの答えを読んでください。彼は状況に対処する方法と、通常/ etc/passwdを手動で変更する必要がない理由を説明します。
とにかくあなたが何をしているのか本当に知っているで/etc/passwd
を手動で編集する必要があるなら、あなたはそれを行うことができますが、それでもあなたは単にファイルを変更するべきではありませんお気に入りのエディター。代わりにツールがあります
vipw
マニュアルページから:
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.
たとえば私の知る限り、ユーザーUIDを変更する場合は、ファイルを手動で編集することが唯一の方法です。また、ユーザーのパスワードを変更し、知らないうちに以前のパスワードに戻したい場合は、usermod
などを使用する方法はありません。ただし、シャドウファイルからハッシュ化されたパスワードを保存してから、ユーザーのパスワードを変更した後、vipw -s
でシャドウファイルを編集して、ハッシュ化されたパスワードを再度追加できます。
@EliahKaganの回答をフォローした後、lightdm
からログインできず、アカウントがリストに表示されませんでした。 passwd
ファイルの許可が適切に設定されていないことを発見しました。 lightdmユーザーにはアクセスできませんでした。修正方法は次のとおりです。
Ttyにログインする Ctrl+Alt+F1
/etc
ディレクトリに移動します
cd /etc
次に、権限を644
に変更します
Sudo chmod 644 passwd
次にls -la
を実行します
許可文字列は次のようになります
-rw-r--r--