Я удалил файл "/etc/passwd" и не могу войти в систему [дубликат]

Я пытался изменить свое имя пользователя, а также свой домашний каталог (/home/username), и моя система начала сбоить. Я удалил файл passwd, но у меня была резервная копия с именем passwd_bkp. Я попытался переименовать этот passwd_bkp в passwd, но это не сработало. Никакие команды не выполнялись... Я находился в окне терминала.

Я перезагрузил систему и теперь не могу войти в систему. GRUB дает два варианта: Linux и режим восстановления.

Я попытался открыть сеанс от имени root, но он говорит, что файловая система повреждена. Я не могу получить доступ к своим файлам.

Я потерял все свои файлы?

22
задан 13 July 2012 в 04:41

5 ответов

Нет, учитывая Ваше описание, Вы не потеряли ни одного из своих файлов (кроме /etc/passwd, который Вы удалили, но которого Вы создали резервную копию).

Загрузите Ubuntu живой CD/DVD или живая карта флэш-памяти с интерфейсом USB. Выбрать Try Ubuntu (нет Install Ubuntu). Когда рабочий стол загрузится, откройте Nautilus (файловый браузер) окно. Можно найти раздел для системы Ubuntu под Devices. Нажмите на него для монтирования его.

Теперь можно восстановить резервное копирование. Необходимо сделать это как корень, как бы то ни было. Вот один довольно простой способ сделать это.

  1. Откройте Окно терминала (Ctrl+Alt+T). В Терминале ввести cd и введите клавишу "Пробел", но еще не нажимайте Enter.

  2. В Наутилусе найдите etc каталог в установленной системе Ubuntu. (Это не то же как etc каталог для живого CD. etc каталог в установленной системе Ubuntu находится в разделе, который Вы просто смонтировали.)

  3. Перетащите это etc каталог в Терминал, который вставит его полный путь в Терминал, завершаясь cd ... команда.

  4. Нажмите Enter для выполнения команды. Теперь Вы находитесь в каталоге, который содержал Ваш passwd файл. Я предполагаю что Ваш файл резервной копии, passwd_bkp, также расположен здесь.

  5. Выполните эту команду:

    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

Можно изменить имя пользователя с некоторыми из тех утилит. Этот ответ объясняет один путь подробно. Однако необходимо знать (как в настоящее время затрагивается комментарием там), что некоторые приложения предполагают, что имя пользователя остается тем же. Так изменение Вашего имени пользователя могло бы вызвать некоторые проблемы.

32
ответ дан 3 November 2019 в 21:26

Как альтернатива начальной загрузке livecd, Вы могли нажать e в меню личинки, чтобы отредактировать спасательную запись режима и добавить init=/bin/sh к аргументам ядра. Это отбросит Вас правильный к корневой оболочке, где можно скопировать файл резервной копии назад в оригинал после перемонтирования чтения-записи файловой системы с mount -o remount,rw /.

4
ответ дан 3 November 2019 в 21:26

Необходимо прочитать ответ первого Eliah Kagan, прежде, чем продолжить читать этот ответ. Он объясняет, как справиться с ситуацией и почему обычно не необходимо изменить/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.

2
ответ дан 3 November 2019 в 21:26

После следования ответу @EliahKagan я не мог войти в систему от lightdm, и моя учетная запись не была перечислена. Я обнаружил, что разрешение passwd файл не было настроено правильно; у lightdm пользователя не было доступа к нему. Вот то, как я зафиксировал it:.

Входят в систему на tty Ctrl + Высокий звук + изменение F1

в /etc, каталог

cd /etc

Затем изменяется, полномочия к 644

sudo chmod 644 passwd

Затем делают ls -la

, строка разрешения должна быть похожей на это

-rw-r--r--
1
ответ дан 3 November 2019 в 21:26

Если можно войти в систему просто открытый терминал и попробовать это:

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

Еще

Начальная загрузка в режим восстановления или от Ubuntu живут 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

тогда перезагрузка. Это не установит passwd для корня.

Затем можно войти в систему, создать все учетные записи снова, и т.д.

, можно также использовать спину, которую называют (я думаю) /etc/passwd-

Редактирование : (другой метод, который я не попробовал прежде, но я думаю, что он должен работать также)

  • , Запускают GRUB на начальной загрузке (нажатие Esc при начальной загрузке)
  • Нажатие e по (режим восстановления)
  • Нажатие e по строке, начинающейся с ядра
  • Нажатие Пространство , и входят init=/bin/bash
  • , Нажатие Вводит b
  • Нажатия
  • В типе командной строки: cp /etc/passwd- /etc/passwd
  • Перезагрузка к GRUB снова
  • Нажатие e по (режим восстановления)
  • Нажатие e по строке, начинающейся с ядра
  • , Нажатие Пространство и входит init=/bin/bash
  • , Нажатие Вводит b
  • Нажатия
  • В Типе passwd YOURUSERNAMEHERE типа mount -o remount,rw /
  • командной строки (Если Вы не знаете свой тип ls /home имени пользователя (который является Нижним регистром L, и нижний регистр S) для списка пользователей)
  • Вводят новый пароль при подсказке
  • Перезагрузка к нормальной начальной загрузке.

Источник

-1
ответ дан 3 November 2019 в 21:26

Другие вопросы по тегам:

Похожие вопросы: