Один из системных администраторов случайно отодвинул / 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
.