Назад | Перейти на главную страницу

Как добавить пользователя root в файл nis passwd?

Один из системных администраторов случайно отодвинул / etc / passwd ... ну! Восстановление файла из резервной копии не работает ... возникает ошибка, потому что пользователь root не существует.

У меня есть NIS, работающий на этом сайте и обслуживающий файлы passwd / group / shadow, и я попытался добавить пользователя root, но не могу заставить это распространяться (я пробовал разные значения для MINUID и MINGID). Я понимаю, почему NIS не хотела бы этого делать, но, эээ, ПОМОГИТЕ!

На сервере работает CentOS 5.6, и на нем нет привода CD / DVD, поэтому я не могу перезагрузиться с аварийного компакт-диска.

Какие-либо предложения?

Я уверен, что есть способ попробовать подключить к нему пользователя root, но если вы отчаянно пытаетесь заставить его снова работать в минимальные сроки, моим методом заставить его работать будет флэш-накопитель USB или USB-компакт-диск, который вы можете загрузиться с аварийного компакт-диска; любой из них должен быть легко доступен, и к тому времени, когда вы найдете способ использовать умный обходной путь, вы, вероятно, уже могли бы вернуться от местного продавца с диском и загрузкой аварийного дистрибутива, ожидающего на вашем рабочем столе.

Вы не упоминаете дополнительную информацию о сервере, но есть вероятность, что на нем не работает RAID (или системный диск не RAIDED)? В этом случае вы можете удалить диск, смонтировать его в другой системе и изменить там файл. В зависимости от того, насколько важна система, вы можете попробовать смонтировать диск и контроллер в другой системе, чтобы весь том RAID стал другим диском.

Возможно, вы захотите использовать USB-накопитель в качестве резервной копии для процесса восстановления этого сервера в будущем. На этот раз ваши проблемы могут быть связаны с человеческой ошибкой, но это не исключает повреждения диска в будущем, вызывающего аналогичные проблемы.

Вы можете попробовать временно отредактировать файл NIS Makefile на главном сервере NIS. Где сейчас говорится

passwd.byname: $(PASSWD) $(SHADOW) $(YPDIR)/Makefile
        @echo "Updating $@..."
        @$(UMASK); \
        $(MERGER) -p $(PASSWD) $(SHADOW) | \
           $(AWK) -F: '!/^[-+#]/ { if ($$1 != "" && $$3 >= $(MINUID) && $$3 !=$(NFSNOBODYUID)) \
           print $$1"\t"$$0 }' | $(DBLOAD) -i $(PASSWD) \
                -o $(YPMAPDIR)/$@ - $@
        -@$(NOPUSH) || $(YPPUSH) -d $(DOMAIN) $@

попробуйте изменить эту строку awk, чтобы удалить тесты для MINUID и NFSNOBODYUID, например

           $(AWK) -F: '!/^[-+#]/ { if ("" == "") \

и аналогично в разделе для passwd.byuid переделайте карты passwd и посмотрите, находится ли теперь там корневая запись с ypcat passwd.