Я случайно выполнил следующую команду в каталоге etc:
sudo chmod -R 700 /etc
Я знаю, что я сделал что-то очень неправильное. Мой терминал теперь печатает:
I have no name!@ubuntu: /$
Как я могу вернуть каталог etc в прежнее состояние?
Я пытался изменить разрешения, но сейчас это не удается. Кроме того, было бы очень полезно, если бы кто-то мог объяснить, что на самом деле пошло не так, когда я выполнял эту команду и т. Д. Это были только права доступа к файлу. Тогда почему вся система кажется полностью взорванной? Почему сейчас не работают пароли для входа? Я знаю, что в каталоге etc есть файл, связанный с пользователями. Но как изменение разрешений ставит под угрозу все? Некоторые технические детали по этому поводу были бы очень полезны.
ls -laR
) из другой работающей системы. Какая у тебя версия? Вы можете изменить каталоги на 755, а файлы - на 644, но некоторые из них должны иметь разные режимы (например, / etc / shadow, например).sudo
вы должны прочитать это в своей голове: «Я даю себе абсолютную власть над моей системой без защитной сетки, уверен ли я, что знаю, что делаю? Я уверен, что набрал то, что имел в виду?» перед нажатием возврата.find /etc -type d ! -perm 755 -exec ls -ld {} \;
иfind etc -type f ! -perm -644 -exec ls -l {} \;
для поиска каталогов и файлов в нестандартных режимах. В Debian это всего 2 каталога и 39 файловОтветы:
Одна вещь пошла не так: использование
sudo
с этой командой.-R
Переключатель указываетchmod
рекурсивно установить права доступа к этому каталогу, который, во всяком случае, не-рекомендуемое действие (если мы называем это: ересь) , если вы не знаете , что вы делаете (раз это случилось со мной, я не выдал команду, но неисправный графический интерфейс сделал это, и моя система подключилась).GNU / Linux очень чувствителен к разрешениям файлов, так как он создан с учетом стабильности и безопасности . То же самое относится и к большинству программ, работающих в GNU / Linux (т.
apache2
Е. Удаляет привилегии root и использует ихwww-data
или аналогичного пользователя, и ваше700
разрешение не позволяет ему читать / записывать собственные файлы).Как вы уже упоминали, пароли для входа в систему хранятся в файле,
/etc/passwd
и только root (я полагаю, вы не изменили это) может прочитать его, но приглашение входа в систему (или вход в систему с графическим интерфейсом) использует учетную запись без прав доступа, следовательно, она не может читать файл.Как и выше, Linux очень чувствителен к разрешениям файлов. Некоторые программы даже проверяют разрешения своих файлов конфигурации, и если они не ожидаются, они вообще не будут работать.
Если вы используете дистрибутив на основе RPM, это можно сделать с помощью
rpm --setperms
команды, это будет болезненно возвращать один за другим пакеты, в Debian-подобной системеapt-get --reinstall install
ваш друг. Другие решения могут быть доступны, но для этого потребуется работающая система.источник
Давайте посмотрим, что вы сделали - установили права доступа для всего каталога / etc, так как чтение / запись / выполнение разрешено только для владельца файла / каталога, запрещенного для всех остальных. Если вас смущают права доступа к файлам, вы можете прочитать больше в Википедии: Традиционные разрешения UNIX .
Причина, по которой вы взорвали вашу систему, заключается в том, что многие процессы больше не могут читать свои настройки, не имея доступа к / etc. Будет нелегко восстановить весь каталог / etc до его предыдущего состояния. Как это сделать, зависит от вашего дистрибутива, но в основном это означает переустановку каждого пакета, содержащего любой файл в / etc.
В качестве быстрой помощи, чтобы иметь возможность использовать систему, чтобы правильно ее исправить (переустановить все пакеты с содержимым в / etc, как указано выше), вы можете сделать:
С помощью этих двух строк вы будете устанавливать либеральные права доступа во всех каталогах / etc, с правом чтения / записи для владельца и группы, а для чтения - для всех остальных. Причиной двух chmod является установка бита выполнения только на dirs. Некоторые процессы будут выдавать жалобы или сбои, в том числе любой исполняемый файл в / etc, но вы сможете выполнить переустановку, описанную выше.
Имейте в виду, что до тех пор, пока вы не восстановите исходные разрешения, ваша система будет, по крайней мере, находиться в небезопасном состоянии.
источник
/etc/sudoers
Другой./etc
не должны быть доступны для чтения! Восстановление из резервных копий, поэтому они у вас есть (или именно поэтому люди убеждают вас делать резервные копии).700 удалил доступ ко многим файлам для групп и мировых пользователей (например, файлы теперь имеют
rwx------
разрешения). Например, все пользователи должны иметь возможность читать/etc/passwd
. С вашей настройкой теперь может читать только root/etc/passwd
. Многие вещи сломаются, если вы нарушите права доступа к файлам/etc/
непредсказуемым образом.Вы можете попытаться восстановить права доступа (при условии, что вы все еще можете переключиться на root) на основе работающего сервера, но это может привести к ошибке.
Я предлагаю восстановить
/etc/
из резервной копии, если она у вас есть (убедитесь, что восстановление возвращает разрешения, или, если ваше решение для резервного копирования поддерживает это, восстановите только разрешения).источник