Возвращение владельца файла в CentOS
Я по ошибке запустил глупую команду с опечаткой. Я создал пользователя "boyspeak" и хотел изменить владельца файла текущего каталога и его подкаталогов, но по ошибке я запустил его в "/".
Пока я запускал команду, я был пользователем "teampeak", а не "root", и я запустил что-то вроде этого:
chown -r teamspeak:teamspeak /*
Я видел много строк, и те, которые я смог прочитать, были неспособны изменить владельца файла, прогресс был вокруг /lib и, возможно, /boot, когда я нажал CTRL+C и остановил его.
Но сервер не становится доступным после перезагрузки (я на 90% уверен, что это владелец файла).
Сейчас я собираюсь загрузить его в режиме спасательного образа, который предлагает мой хост.
Мне было интересно, если есть способ отменить разрешение файла.
И / ИЛИ
Команда для поиска всех файлов, принадлежащих TeamSpeak: TeamSpeak и сделать их root:root
По крайней мере, я загружаю его правильно и извлекаю все базы данных с моего сервера.
5 ответов
Проблема была исправлена, техник центра обработки данных начал ее и сказал:
машина была остановлена в BIOS из-за ошибки, ожидая вмешательства.
Я жду дополнительной информации, но это было, вероятно, предупреждение о загрузке, поскольку в каталоге / boot был задан другой пользователь, а не root: root
Теперь я залез в ssh и побежал find / -user 'teamspeak'
чтобы увидеть файлы с неверным набором пользователя, это было:
/mnt
/lib
/lost+found
/root
/etc
/lib64
/opt
/sbin
/var
/var/tmp/yum-teamspeak-6jBpFg
/usr
/boot
/home
/home/teamspeak
/home/teamspeak/.viminfo
/home/teamspeak/.bashrc
/home/teamspeak/.bash_profile
/home/teamspeak/.bash_logout
/home/teamspeak/.bash_history
/srv
/selinux
/tmp
/bin
/media
Это не так много измененных файлов / папок, и результат также включает в себя подкаталоги. Поэтому я сравнил их с другой машиной с той же ОС (CentOS 6), все они должны были быть root:root, я изменил их обратно, сделал перезагрузку и все началось хорошо.
Пфу:)
"Команда для поиска всех файлов, принадлежащих TeamSpeak: TeamSpeak и сделать их root:root"
Пытаться
find / -user 'teamspeak' | xargs chown root:root
Странно было то, что OP, по-видимому, отключил компьютер (или, по крайней мере, предотвратил перезагрузку), выполнив команду от имени пользователя teampsak вместо root
, Этого не должно быть, если только не было проблем с разрешениями на коробке до запуска команды.
Ответ Джанна не сработает, так как измененные файлы, вероятно, не должны иметь root-права для начала, но идея использования find
может быть действительным.
Я не знаю, где находится adrianTNT в процессе его восстановления, но вот проверку / проверку работоспособности, которую я бы сделал:
1) запустить это find / -user teamspeak
и получите список измененных файлов 2) сравните этот список с владельцами файлов другого блока CentOS 3) если другой блок CentOS недоступен (или не может быть вызван достаточно быстро), по крайней мере сделайте глазок из список файлов. Ищите системные файлы, которые изменили владельца.
Я думаю, вы все равно захотите посмотреть на другую коробку CentOS, как только у вас появится этот список. Как сказано, chown
непривилегированный пользователь не должен испортить коробку, как это. Возможно, до вашей ошибки были проблемы с разрешением.
Проблема в том, что смена владельца файлов / папок обратно на root
не может решить все ваши проблемы, как root
не является владельцем всех файлов / папок.
Я думаю, у вас есть два варианта:
- Переустановите ОС, если это возможно.
- Перейдите к утомительной задаче сравнения этого с другой работающей системой и смены владельца по мере необходимости. Вы можете начать с изменения владельца на root в качестве начального шага.
Если у вас нет резервной копии, единственное решение, которое мне приходит в голову, это переустановить сервер и никогда больше не запускать эту команду:D
Вы все еще можете загрузиться с компакт-диска, смонтировать диск и восстановить нужные файлы.