it-swarm-ru.tech

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

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

57
chrissygormley

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

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

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

32
Ignacio Vazquez-Abrams

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

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

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

chmod +t /mydirectory

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

44
deadkarma

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

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

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

$ chmod -R 0755 /my-cool-directory
14
unwind