Я недавно сделал что-то очень, очень глупое. Вместо того, чтобы печатать: chown adam ./*
Я написал: chown adam /*
(Я забыл об очень важной точке). Теперь у меня есть несколько файлов с владельцем adam
вместо ... хм, я не знаю, кто. Я даже не могу вызвать su
и войти в систему как root, потому что я получаю: su: cannot set groups: Operation not permitted
. Я могу только запустить мой Arch Linux CD, запустить его в режиме EFI, войти в систему как root и вызвать arch-chroot /mnt
, где в /mnt
смонтирован мой основной раздел Linux. Ситуация плохая, но не ужасная. Есть ли способ восстановить мою систему?
1 ответ
Я бы начал с sudo chown -R root /bin /sbin /lib /usr /sys /boot /etc /dev
изнутри chroot - это даст вам загрузочную систему, но я не уверен на 100%. Возможно, стоит подождать, пока кто-нибудь подтвердит, что это не усугубит ситуацию.
Обратите внимание, что если вы просто выбрали файлы, вы окажетесь в гораздо лучшем положении, чем тот, кто использует chmod или chgrp своей системы. Большинство файлов в однопользовательской системе (т. Е. Используются только вами) принадлежат вам (в /home /username) или принадлежат пользователю root. В /var
может быть несколько странных файлов, а в /run
и /tmp
которые принадлежат сервисам, которые их создали. Попробуйте sudo chown root /var /run /tmp
(обратите внимание на отсутствие -R
) для этих каталогов.
Возможно, вы захотите стереть содержимое /run
и /tmp
(sudo rm -rf /run/* /tmp/*
- будьте очень осторожны, чтобы это было напечатано правильно), так как они временны и перестраиваются приложениями, когда система перезапускается, и это гораздо проще, чем пытаться выследить владельцев и исправить это.
/var
будет сложным беспорядком. Многие демоны ожидают, что смогут писать там (mysql, apache и т.д.) И имеют вложенные папки внутри. Можно безопасно перезаписать содержимое верхнего уровня (sudo chown root /var/*
), но содержимое папок необходимо тщательно восстанавливать. Вы можете поискать подсказки в папках live-cd /var
.