Chmod, чтобы разрешить чтение и запись для каталога

62

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

chrissygormley
источник

Ответы:

34

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

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

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

Игнасио Васкес-Абрамс
источник
48

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

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

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

chmod +t /mydirectory

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


источник
15

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

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

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

$ chmod -R 0755 /my-cool-directory
размотать
источник
@unwind - я имею в виду, что каждый файл и подкаталог каталога, в котором находится chmod, имеет права на чтение и запись для всех. Это то, что делает эта команда? Спасибо
1
Когда я ставлю -r перед 0755, я получаю 0755 - такого файла или каталога нет ... установка -r после решает мою проблему.
Тим Моттрам
«делай, делай». лол. отлично.
ytpillai