Случайно запущенная команда
sudo chmod -R o+x /home
на моем Ubuntu 12.10.
Что мне теперь делать? Это опасно? У меня нет резервной копии раздела, поэтому я думаю, что эта команда необратима. ТАК ЧТО мне переустановить всю систему из-за этой ошибки?
решение1
Лучший способ исправить это зависит от деталей настройки вашей системы. К счастью, вы, вероятно, знаете эти детали.
В отношении файлов +x
означает, что их можно запускать как программу. (На самом деле, это дает разрешениепытаться. Если они не являются исполняемыми двоичными файлами или файлами скриптов слиния хэшбэнга, это все равно не удастся.)
В каталогах (то есть папках)+x
разрешениеозначает что-то другое. Разрешения на исполнение для папки предоставляют возможность войти в папку и ее подпапки (хотя ее подпапки могут не иметь необходимых для этого разрешений), а также попытаться получить доступ к файлам внутри папки (файлы могут иметь или не иметь разрешений, позволяющих это сделать).
Это было o+x
. o
означаетдругой. Это контролирует разрешения пользователей, которые не являются владельцами файла или папки, а также тех, кто не является членами «группы владельцев» файла или папки.
Если вы в настоящее время не используете разрешения на обмен файлами с другими локальными пользователями
Если пользователю (например, вам) не нужно делиться файлами с другими пользователями, то можно безопасно лишить его прав на исполнение.другой, пока вы делаете это тольковезде внутри вашей домашней папки. Ваша домашняя папка — это место, где/home/username
username
заменяется на ваше фактическое имя пользователя. /home
Это не ваша домашняя папка, а скорее папка, в которой находитсясодержитвсе домашние папки. Поскольку /home
сам по себе он фактически не принадлежит ни одному человеку-пользователю компьютера,крайне важно, чтобы разрешения на исполнение длядругойне может быть удален от /home
себя.
Итак, вы можете запустить:
cd ~
~
представляет вашу домашнюю папку. (Оболочка интерпретирует это именно так, вы можете ввести именно это.)
Затем вы можете запустить:
chmod -R o-x .* *
Или если вы хотите запретить другим пользователям изменять каталог и входить в вашу домашнюю папку:
chmod -R o-x ~
Я намеренно не написал sudo
. Вы по-прежнему являетесь владельцем файлов в своей домашней папке, поэтому вам не нужен sudo
, а отключение этого параметра поможет избежать случайного изменения разрешений для неправильных файлов и папок. (В частности, /home
владельцем является root
, поэтому отключение этого параметра sudo
гарантирует, что вы случайно не измените разрешения для /home
и не сделаете свою систему непригодной для использования.)
Если выДелатьВ настоящее время используются разрешения на обмен файлами с другими локальными пользователями
Если у вас есть папки, которыми вы делитесь с другими пользователями на машине (если это так, то вы почти наверняка знаете об этом), то вы можете использовать вышеописанный метод, а затем вручную добавить разрешения на выполнение для этих конкретных папок. Но если у вас их слишком много, чтобы это было практично, то, особенно если вы не беспокоитесь о том, что другие пользователи получат доступ к вещам, которые им не положено, вы можете захотетьтолькоубрать разрешения на исполнение изфайлы, а не отпапки.После этого вы, конечно, сможете выборочно отозвать разрешения на исполнение для некоторых папок.
Чтобы отменить разрешения на выполнение длядругойиз всехфайлыв домашней папке вашего пользователя, но не в каталогах, выполните:
find ~ -type f -exec chmod o-x \{\} \;
(Вы заметите, что это похоже на одно изПредложения Сенгстрома. Видетьman find
(Для получения информации о том, как это работает.)
решение2
Вы только что изменили права доступа ко всем файлам пользователей на исполняемые (а к каталогам — на доступные для поиска, что является значением по умолчанию) для всех пользователей — возможно, это не то, что вам нужно, но, возможно, это и не конец света — особенно если вы единственный пользователь на машине.
Одна из идей, которую вы могли бы сделать, — это сделать find
в каталогах документов и отключить флаг исполняемости для обычных файлов, если он вас там беспокоит.
Если система новая, я бы рассмотрел переустановку, чтобы сделать ее чистой и аккуратной :)