Я изменяю последнюю строку в / etc / passwd и не могу использовать sudo

15

Вот что я сделал:

  1. Измените имя пользователя в последней строке: tinyнаabc

    • tiny@tty7:~$ sudo vim /etc/passwd
    • Измени это:
      tiny:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
      на это:
      abc:x:1000:1000:tiny,,,:/home/tiny:/bin/bash
  2. tiny@tty7:~$ sudo vim /etc/shadow

    • это показывает: [sudo] passwork for abc:

    • Я не изменил свой пароль, но он не может войти в систему как root!

    • Я печатаю Ctrl+ Alt+ F1к , tty1но ни крошечные или а не может войти с паролем

и я пытаюсь посмотреть ls ~ -la, вот это показывает, как это:

drwxr-xr-x 28 abc tiny 4096 Apr 6 03:04 .

Как я могу войти в систему root? и почему имя пользователя в приглашении tiny@tty7все еще крошечное, а в sudo он показывает пароль abc?

tinyork
источник

Ответы:

18

Причина, по которой вы застряли после редактирования, состоит в том, что в /etc/shadowфайле содержится запись для пароля, tinyно нет записи для abc, тогда как /etc/passwdфайл содержит запись для, abcа не для tiny. При sudoпросмотре он правильно идентифицировал вас (в соответствии с файлом паролей) как abcоснованный на UID процесса, который вы выполняли, но когда он посмотрел, чтобы сравнить то, что вы ввели в качестве пароля, с зашифрованным (хешированным) паролем, хранящимся в нем /etc/shadow, он не смог не найти запись для abc, поэтому он должен был сообщить об ошибке.

Как сказал Шедди в своем ответе , не редактируйте пароль или теневые файлы вручную. Если вам нужно нарушить правило, отредактируйте оба в одном вызове vimи не выходите из него, vimпока не докажете, что изменения достаточно нормальны, чтобы работать с помощью другого окна терминала, и сохраните резервные копии файлов перед вы начинаете их взламывать, и в первую очередь пересматриваете, почему вы нарушаете правила, потому что это, вероятно, не очень хорошая идея.

Джонатан Леффлер
источник
22

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

Правильный способ изменить ваше имя пользователя:

usermod -l newUsername oldUsername

Затем измените домашнюю папку:

usermod -d /home/newHomeDir -m newUsername

Для смены пароля вы должны использовать:

sudo passwd yourusername

Я предлагаю вам вернуть файл passwd обратно, или если вы не можете его отредактировать, потому что вы не можете войти в систему с root - загрузитесь с live cd и верните файл обратно. Тогда используйте правильный путь.

Shaddy
источник
1
спасибо ~ я подумал, что самое сложное - войти в систему с правами root, затем перезагрузить компьютер, выбрать режим revovery, root, а затем вернуть обратно файл passwd ~ он работает ~
tinyork
0

Использование: vipw

Я всегда использовал это во FreeBSD и только что подтвердил, что вы можете использовать это и для Ubuntu. Пожалуйста, прочитайте эту страницу: Ubuntu Man Page для vipw

Леди гик
источник
-3

процедура изменения вашего имени пользователя (но не uid) вручную:

  1. Если у вас не получилось проверить голову, переходите ко второму шагу.
  2. отредактируйте теневой файл, дублируя строку пользователя с новым именем пользователя.
  3. редактировать группы, sudoers, разрешать новые разрешения для имени пользователя, сохранять старые
  4. символически связать домашний каталог с новым именем
  5. редактировать файл passwd, меняя имя пользователя и домашний каталог
  6. редактировать тени, sudoers, группы, чтобы удалить старые записи, которые мы сохранили в шаге три
  7. редактировать псевдонимы и другие ссылки на старое имя пользователя.
  8. Выйдите из системы, переключитесь на текстовую консоль (следующий шаг не будет работать, если в домашнем каталоге пользователя запущены какие-либо программы, включая оконные менеджеры)
  9. Перейдите в каталог над вашим домашним каталогом.
  10. удалите символическую ссылку и переименуйте домашний каталог.
  11. Выйдите из системы и войдите как обычно.

Вещи гораздо проще изменить чужое имя пользователя, хотя все же не просто.

hildred
источник