Форум русскоязычного сообщества Ubuntu


Автор Тема: Как поправить UID rootа обратно на 0 или как восстановить /etc/passwd?  (Прочитано 3393 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Divergent

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Задачка...UID в /etc/passwd поправил кто-то (не важно кто!) на отличное от 0.
Естественно система грузится не так как надо и работает тоже...
КАК поменять обратно на 0. sudo view /etc/passwd естественно не работает, так как нет такого пользователя c UID=0 и не  даёт права.
Поменять нужно в /etc/passwd, но как не понятно.

Просьба постараться не разглагольствовать о том какой плохой человек который так сделал, а как решить ситуацию =)))

« Последнее редактирование: 07 Декабря 2009, 15:30:44 от Divergent »

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6127
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #1 : 07 Декабря 2009, 12:21:20 »
Да вы не нервничайте.

Загрузитесь с LiveCD и поправьте.

Оффлайн Divergent

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #2 : 07 Декабря 2009, 12:26:41 »
Раскрою карты. Это экзаменационная задачка и естественно никаких загрузочных дискет, лайв сиди нет.

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6127
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #3 : 07 Декабря 2009, 12:29:53 »
никаких загрузочных дискет, лайв сиди нет.

А что есть? что хоть за система?

какой-то курс молодого кулхацкера, однако...

Оффлайн SureGOOD

  • Активист
  • *
  • Сообщений: 724
  • suregood.ru
    • Просмотр профиля
    • suregood.ru
Re: Как поправить UID rootа обратно на 0?
« Ответ #4 : 07 Декабря 2009, 12:57:16 »
грузиться с параметом single (я это часто советую, дадада=) )

Оффлайн Divergent

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #5 : 07 Декабря 2009, 12:59:47 »
Стоит ALTLinux, но это впринципе не особо важно.

Как немного ранее написал, нет ничего кроме как загрузиться через grub.

Однопользовательский режим не пускает под рутом, так как рута по сути нет...uid= не нулю.
Многопользовательский режим позволяет зайти под логином root, но так как это НЕ uid=0, то фактически прав рута нет.

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #6 : 07 Декабря 2009, 13:06:31 »
При загрузке (в грубе) дописываем в стандартную строку загрузки ядра

init=/bin/sh

Может так?

Оффлайн Divergent

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #7 : 07 Декабря 2009, 13:14:57 »
Тоже склоняюсь к этому, но есть вопросы....что произойдёт при загрузке в таком режиме и что будет доступно?

К примеру загрузился shell и я набираю
view /etc/passwd
правлю обратно в 0 uid
и всё?
или там смонтировать ещё что-то куда-то надо?

init=/bin/sh судя по всему нужно писать в строке параметров kernel ?


------------------------------------
В wikipedia нарыл
How to modify kernel boot-up arguments, to gain root user access
Read #General Notes
Boot-up computer
If GRUB menu is hidden, press 'Esc' to enter the GRUB menu
If GRUB password is set, press 'p' to unlock the GRUB menu
Select
Ubuntu, kernel 2.6.10-5-386
Press 'e' to edit the commands before booting
Select
kernel /boot/vmlinuz-2.6.10-5-386 root=/dev/hda2 ro quiet splash
Press 'e' to edit the selected command in the boot sequence
Add "rw init=/bin/bash" to the end of the arguments
grub edit> kernel /boot/vmlinuz-2.6.10-5-386 root=/dev/hda2 ro quiet splash rw init=/bin/bash
Press 'b' to boot

Если я прально понимаю это то что нужно. Но всёравно стоит вопрос как поменять? Просто зайти в этот файл и поменять? Даст ли вообще зайти в файл и производить какие-либо изменения.

« Последнее редактирование: 07 Декабря 2009, 13:23:52 от Divergent »

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #8 : 07 Декабря 2009, 13:43:33 »
Даст. Только нужно перемонтировать корневой раздел - он будет смонтирован readonly.

Других вариантов не вижу.

Пользователь решил продолжить мысль [time]Mon Dec  7 11:44:30 2009[/time]:
Ну или так как Вы нашли - указать монтировать rw.

UPD: но учтите, что это - совсем "грубый" хак...  ;)
« Последнее редактирование: 07 Декабря 2009, 13:45:59 от Karl500 »

Оффлайн Divergent

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #9 : 07 Декабря 2009, 13:57:05 »
да уж...оооочень грубый но по другому не как...

Если рассматривать что делается при загрузке ОС, то там ещё происходит проверка файловой системы как я понимаю и потом перемонтируется в rw.
Как считаете нужно ли пробовать давать проверку руками fsck или попробовать как-то без неё, а если понадобиться дать.

К сожалению нет возможности всё это проверить сейчас...просто хочу сразу рассмотреть все варианты, чтобы быть готовым.

Оффлайн БТР

  • Заслуженный пользователь
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6127
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #10 : 07 Декабря 2009, 13:59:40 »
fsck выполняется от root. Если прав нет, то ничего он вам не починит. Загрузка с параметром init=/bin/sh думаю равносильна single, поэтому особой разницы нет.

К сожалению нет возможности всё это проверить сейчас...просто хочу сразу рассмотреть все варианты, чтобы быть готовым.
Чтобы быть готовым, нужно иметь при себе загрузочную флешку.

Оффлайн Divergent

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #11 : 07 Декабря 2009, 14:04:30 »
Чтобы быть готовым нужно понимать как всё происходит, а загрузочная флешка просто облегчит время решения проблемы.

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #12 : 07 Декабря 2009, 14:24:10 »
Авторитетно утверждаю - init=/bin/bash это решение.

Проверил только что. Поневоле  :2funny:

Рассказываю подробно.

Загрузился с init=/bin/bash первый раз, смонтировал корень rw. Отредактировал /etc/passwd чтобы проверить. Записал (на самом деле вставил и удалил строку в конце), НО! Забыл сделать sync и просто кнопкой выключил ноутбук.
При перезагрузке - не загрузился. При попытке загрузиться в single на терминал сыпались какие-то (не суть) ошибки про D-Bus.

Чистота эксперимента былоа полная - лайвCD у меня нашелся только 8.10, а корень - ext4, которую этот лайвCD не знает.

Гружусь с init=/bin/bash еще раз, и вижу, что /etc/passwd просто пустой. Вообще.
Перемонтирую корень в rw (mount -o remount,rw /dev/sda4 / ), копирую cp /etc/passwd- /etc/passwd и правлю ему разрешения chmod 644 /etc/passwd

При перезагрузке - вуаля, все нормально.

Итого: метод рабочий 100%.

Резюме: не забывайте делать sync...  ;D

Оффлайн Divergent

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #13 : 07 Декабря 2009, 14:42:01 »
Вопроски...что ты имел ввиду про копирование etc/passwd. Откуда ты его копировал?

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: Как поправить UID rootа обратно на 0?
« Ответ #14 : 07 Декабря 2009, 14:49:41 »
Я ж написал:

cp /etc/passwd- /etc/passwd
А мог бы и так (даже правильнее):

cp /var/backups/passwd.bak /etc/passwd
В обоих случаях нужно восстановить права на чтение

chmod 644 /etc/passwd

 

Страница сгенерирована за 0.043 секунд. Запросов: 23.