Случайно выполнил команду, теперь не знаю что делать

Случайно запустил команду

sudo chmod -R o+x /home

на моей Ubuntu 12.10.

Что мне теперь делать? это опасно? У меня нет резервной копии раздела, поэтому я думаю, что эта команда необратима. Так мне переустановить всю систему из-за этой ошибки?

1
задан 23 March 2013 в 21:05

2 ответа

Вы только что изменили права доступа ко всем пользовательским файлам для исполняемых файлов (и каталогов для поиска, что по умолчанию) для всех пользователей - вероятно, не то, что вы хотите, но, вероятно, и не конец света - особенно если вы единственный пользователь на машине.

Можно подумать, что можно сделать find для каталогов документов и отключить этот исполняемый флаг для обычных файлов, если это вас там беспокоит.

Если система свежая, я мог бы подумать о ее переустановке, чтобы она выглядела красиво и чисто :)

0
ответ дан 23 March 2013 в 21:05

Лучший способ исправить это зависит от деталей вашей системы. К счастью, вы, вероятно, знаете эти детали.

В файлах +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 и не смогли использовать вашу систему.)

Если вы делаете в настоящее время используете разрешения для обмена файлами с другими локальными пользователями

Если у вас есть несколько папок, которыми вы делитесь с другими пользователями на машине (если вы это делаете, то вы почти наверняка знаете, вы), затем вы можете использовать вышеуказанный метод, а затем вручную добавить разрешения на выполнение для этих конкретных папок. Но если у вас их слишком много, чтобы это было практично, особенно если вы не беспокоитесь о том, что другие пользователи могут получить доступ к вещам, для которых они не предназначены, вы можете просто забрать разрешения на выполнение из [ 1134] файлы , а не из папок. После этого вы, конечно, можете выборочно удалять права доступа к исполняемым файлам у некоторых папок.

Чтобы убрать права на выполнение для других из всех файлов в домашней папке вашего пользователя, но не в каталогах, выполните:

find ~ -type f -exec chmod o-x \{\} \;

( Вы заметите, что это похоже на одно из предложений SEngstrom . Информацию о том, как это работает, см. В man find .)

0
ответ дан 23 March 2013 в 21:05

Другие вопросы по тегам:

Похожие вопросы: