57

Я создал каталоги в корне. Я ищу команду chmod чтобы разрешить всем пользователям права на чтение и запись для определенного каталога. Я сделал chmod 775 для файла, но мне нужно это для каталога. Это включает в себя разрешения на все файлы и подкаталоги.

3 ответа3

42

Для всех пользователей, имеющих доступ для чтения и записи, это будет 0777 что немного опасно, особенно если вы используете веб-сервер. Как сказал @unwind:

chmod -R 0777 /mydirectory всем пользователям доступ для чтения и записи ко всем файлам и папкам в этом каталоге.

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

chmod +t /mydirectory

Кроме того, в случае, если вы не знали, что man chmod вызовет страницу руководства для команды chmod , в которой вы можете найти текст "recursive", набрав /recursive

32

0775 редко подходит для файла. Следующее добавит соответствующие требуемые разрешения к соответствующему типу, не нарушая другие существующие разрешения:

find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)

См. Справочную страницу для поиска, чтобы помочь расшифровать это.

14

Это не то, как работает модель защиты Unix, вы не можете устанавливать разрешения рекурсивно. Вы должны установить их в каждом каталоге, полностью "вниз".

Конечно, вы можете выполнить настройку рекурсивно, но это означает только "пройти и установить эти разрешения для всех файлов и папок ниже", что не совсем так, как я понимаю ваш вопрос.

Для этого используйте опцию -R для chmod:

$ chmod -R 0755 /my-cool-directory

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .