Я делал массовые рекурсивные изменения прав доступа к некоторым файлам, которые я перенес в систему Unix. Я изменил их на ug + rw, но потом обнаружил, что не могу просматривать подкаталоги. Я заглянул на страницу chmod
справочника и не увидел никакого объяснения об исключении каталогов, поэтому немного погуглил и обнаружил, что люди find
рекурсивно меняли права на каталоги для «выполнения» для пользователя и группы. Я сделал это, и тогда я мог посмотреть на них.
Но мне показалось, что я должен быть в состоянии сделать эту находку chmod
- рекурсивно изменять файлы для чтения / записи, но не делать каталоги необратимыми. Я сделал это «правильным» способом или есть более простой способ сделать это?
источник
find
установки всех разрешений для файлов на 600 и всех разрешений для каталогов на 700. (Я прибыл сюда через свои поиски по теме.) Если это можно сделать с помощью однойchmod -R
команды, не стесняйтесь исправлять меня.chmod -R u=rwX,go= /path
делает почти то, что вам нужно: она устанавливает все каталоги в 700 и все файлы в 600 или 700, в зависимости от того, установлен ли бит выполнения или нет, и я думаю, что это правильно ,find
команда, которую вы написали, была очень полезна в качестве шаблона. :)Использование find - это «правильный» и единственный программный способ, хотя есть и варианты:
или
или самый медленный:
Каждый из них выбирает файл (не каталог, не символическую ссылку) и применяет к нему
chmod
команду. Первые два уменьшают количество вызововchmod
, добавляя файл в конец внутренней командной строки каждый раз, пока не будет достигнут максимум (часто 10), затем вызывает команду и начинает перестраивать новую команду. Последний оператор порождает новый процесс для каждого файла, поэтому он менее эффективен.источник