LINUX.ORG.RU
ФорумAdmin

CentOS 6.0 Не могу войти в систему. Не могу сменить пароль root

 


0

1

Привет всем!!!

Есть маленький вопрос на который я никак не могу дать ответ... Я случайно, оторвать руки, запаковал все файлы в папке /etc. Система нормально работает но к себе не пускает. Машина с железным раидом и я вытащил винт, сделал образ и записал его на такую же машину. Все файлы я восстановил, но войти не могу. Пароли все помню, но это не помогает. Покопавшись в нете нашёл способы как сбросить пароль для root через grub.

1. Отредактировал строку загрузки Было

kernel /vmlinuz-2.6.18-92.el5 ro root=UUID=505f10af-fc29-4cd6-aa0f-20ee2afda73f и т.д

Стало

kernel /vmlinuz-2.6.18-92.el5 rw root=UUID=505f10af-fc29-4cd6-aa0f-20ee2afda73f и т.д /bin/bash

2. Отредактировал строку загрузки

Стало

kernel /vmlinuz-2.6.18-92.el5 ro root=UUID=505f10af-fc29-4cd6-aa0f-20ee2afda73f и т.д single

Пробовал заменить UUID=505f10af-fc29-4cd6-aa0f-20ee2afda73f на /dev/cciss/c0d0p1 не помогает.

Всё нормально, вижу что хэш пароля меняется, но всёравно не пускает. Всю голову сломал...

Что ещё можно сделать посоветуйте.



Последнее исправление: alfer (всего исправлений: 1)
Ответ на: комментарий от alfer

После очередой смены пароля в консоли выскачило сообщение

unix_chkpwd [1342]: could not obtain user info (root)

alfer
() автор топика

ты что-то не договариваешь. В теге 6.0, значит ядро 2.6.32. 18-е ядро - это шапка5. Во вторых нужно в grub нажать е, дописать single, загрузиться. Потом меняешь пароль командой passwd root. Файловая система при этом (католог /etc) должен быть смонтирован на чтение и запись, а не только чтение.

Вот пример конфига без single

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/lv_group-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-358.2.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-358.2.1.el6.x86_64 ro root=/dev/mapper/lv_group-lv_root LANG=ru_RU.UTF-8 rd_NO_LUKS rd_LVM_LV=lv_group/lv_swap rd_NO_MD crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=ru rd_LVM_LV=lv_group/lv_root rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-358.2.1.el6.x86_64.img

Еще тебя может от рута не пускать, если будешь подключаться удаленно по ssh, а не заходить локально.

andrew667 ★★★★★
()
Последнее исправление: andrew667 (всего исправлений: 2)
Ответ на: комментарий от andrew667

Это я с примера скопировал. В реальности ядро vmlinuz-2.6.32-71.29.1.el6.

Я пробовал и с /bin/bash и с single. Содержимое файла меняется.

alfer
() автор топика

kernel /vmlinuz-2.6.18-92.el5 rw root=UUID=505f10af-fc29-4cd6-aa0f-20ee2afda73f и т.д /bin/bash

должно быть

[code]kernel /vmlinuz-2.6.18-92.el5 rw root=UUID=505f10af-fc29-4cd6-aa0f-20ee2afda73f и т.д init=/bin/bash[/code]

обращаю твоё внимание на init=

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

а, ну и перед тем как пароль менять сделай mount -o remount,rw /

PS. Тред не читал, читаю.

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)
Ответ на: комментарий от AndreyKl

Так я же говорю, что угробил систему когда заархивировал /etc. Сейчас все файлы восстановил. Но в систему с прежними паролями не пускает.

Извиняюсь, именно так init=/bin/bash и писал.

alfer
() автор топика
Ответ на: комментарий от alfer

а права верные?

ты сделай, когда зайдёшь c init=/bin/bash

потом так

# mount -o remount,rw /
# rpm --setperms `rpm -qa`

и это.. обясни таки пошагово, что ты делаешь и куда тебя не пускает.

примерно так...

1. коннекчусь по ssh: ssh root@192.168.122.1
2. ввожу пароль
3. говорит «пароль неверен».

а, да, и перед тем как перезагружаться сбрось файловую систему или перемонтируй в ro

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 4)
Ответ на: комментарий от AndreyKl

1. Включаю машину

2. Захожу в режим редактирования grub

3. Редактирую kernel /vmlinuz-2.6.18-92.el5 rw root=UUID=505f10af-fc29-4cd6-aa0f-20ee2afda73f и т.д init=/bin/bash

4. Выполняю

# mount -o remount,rw # rpm --setperms `rpm -qa`

5. Меняю пароль root

6. Перегружаюсь

7. Ошибка при входе в систему с новым паролем - Login incorrect

8. :-(((

alfer
() автор топика
Последнее исправление: alfer (всего исправлений: 1)
Ответ на: комментарий от alfer

Ну правильно, это в rw, а потом когда пароль сменишь, сделай mount -o remount,ro /

или flushfs или как то так, ща поищу

а, вроде бы sync

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 2)
Ответ на: комментарий от arson

и кстати это тоже верная мысль

в /etc/selinux/config

нужно заменить строку SELINUX=enforcing на SELINUX=disabled

всего как то так получается

# mount -o remount,rw /
# rpm --setperms `rpm -qa`
# passwd
Enter new password:
Repeat...
# vi /etc/selinux/config
# sync
# mount -o remount,ro /
--- reboot ---

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 3)
Ответ на: комментарий от AndreyKl

Не помогло.

Вот это unix_chkpwd [1342]: could not obtain user info (root) смущает.

Можно ли на содержимое /etc восстановить правильные права доступа? Может в этом дело?

alfer
() автор топика
Последнее исправление: alfer (всего исправлений: 1)
Ответ на: комментарий от alfer

можно, как раз это делается когда вводишь rpm --setperms `rpm -qa` (восстановление прав на все установленые пакеты во всей системе). Ты попробуй вот это (selinux отключить) CentOS 6.0 Не могу войти в систему. Не могу сменить пароль root (комментарий) , отпишись. Потом будем дальше думать.

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 1)

Может, просто скопипастить строчку рута из /etc/passwd и /etc/shadow с той машины, на которой пароль рута известен?

Skeletal ★★★
()
Ответ на: комментарий от Skeletal

Помогло отключение selinux. Но это привело к тому что сеть не поднимается. По lspci карта видна, а в ifconfig нет.

ifconfig пишет не найдено устройство eth0.

alfer
() автор топика
Последнее исправление: alfer (всего исправлений: 1)
Ответ на: комментарий от alfer

Локально всегда пускало.

То есть локально рутом ты заходишь, а по ssh нет? Если так, то не дури голову и смотри конфиг sshd. Не поможет - смотри PAM и выруби selinux.

andrew667 ★★★★★
()
Ответ на: комментарий от andrew667

Пустило в консоль после отключения selinux. Сделал

# mount -o remount,rw / # rpm --setperms `rpm -qa` # passwd Enter new password: Repeat... # vi /etc/selinux/config (поставил disable) # sync # mount -o remount,ro / --- reboot --- С сетью пока борюсь, не поднимается. Говорит нет Eth0.

alfer
() автор топика
Ответ на: комментарий от alfer

Пустило в консоль после отключения selinux

Так локально или удаленно?

С сетью пока борюсь, не поднимается

Ищи в этом направлении

ls /lib/udev/rules.d | grep net

andrew667 ★★★★★
()
Ответ на: комментарий от andrew667

Пока локально.

Почему-то создалось два новых сетевых устройства. И карты уехали на eth3 и eth4. Сейчас восстановил как было. Пробую что получиться.

alfer
() автор топика
Ответ на: комментарий от generator

После перезагрузки файл /etc/udev/rules.d/70-persistent-net.rules заново сгенерился и у меня снова 4 сетевухи. Как это побороть? Надо писать свои правила? Переименовать никак?

alfer
() автор топика
Ответ на: комментарий от alfer

Переименовать никак?

Меняй содержимое руками и грузись

andrew667 ★★★★★
()
Ответ на: комментарий от generator

Ребята всем спасибо!!! Надо бежать. И так на работе 12 часов. Завтра если что подниму тему и отпишусь.

alfer
() автор топика
Ответ на: комментарий от alfer

если помогло отключение selinux то значит лейблы не установлены (что логично).

чтобы подключить обратно selinux сделай так

# vi /etc/selinux/config // включаем selinux, ставим enforcing
# touch /.autorelabel

и перезагрузи машину. система автоматически перемаркирует все файлы.

PS. Но сначала разберись с сетью, а потом selinux включай (если он вообще нужен).

AndreyKl ★★★★★
()
Последнее исправление: AndreyKl (всего исправлений: 3)
Ответ на: комментарий от alfer

genhomedircon

о, а я не знал про такую комманду, спс.

но кстати по моему ты её не верно юзаешь, она согласно ману нужна для создания конфига пользовательских домашних директорий, а у тебя ведь проблемы с /etc. Для etc конфиг и так существует, надо только touch /.autorelabel (ну или можно ещё restorecon -RF /etc). Но это не суть важно, рад что у тея всё заработало )

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

Я на хабре нашёл статью про SELinux. Там было чётко написано что если

touch /.autorelabel

не запускает перемаркировку файлов, то надо сначала выполнить

genhomedircon.

alfer
() автор топика
Ответ на: комментарий от alfer

не запускает перемаркировку файлов, то надо сначала выполнить genhomedircon.

ну может и так, просто из мана это как то неочевидно. я лично не встречал чтобы после создания .autorelabel не запускалась перемаркировка. Вот что restorecon -R (без F) может не перемаркировать - видел. Но это не важно, конечно..

AndreyKl ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.