Chmod 777 в папку и все содержимое

У меня есть веб-каталог /www и папка в этом каталоге с именем store.

Внутри store есть несколько файлов и папок. Я хочу предоставить папке store и всем файлам и папкам в папке store все разрешения.

Как мне это сделать? Я предполагаю, что через .htaccess.


person RSM    schedule 30.11.2011    source источник
comment
Вам нужно серьезно подумать о присвоении 777 всем файлам и папкам в каталоге /www, что означает, что все ваши файлы и каталоги будут доступны для чтения, записи и выполнения всем миром.   -  person anubhava    schedule 30.11.2011
comment
Просто чтобы опровергнуть паникерскую дезинформацию в комментариях: ваши файлы, вероятно, не будут доступны для записи или даже для чтения всем миром. Вам нужно будет настроить веб-сервер, который явно разрешает эти вещи, что было бы очень необычно. Эти файлы будут доступны для чтения, записи и выполнения любым пользователем, который может войти в вашу систему.   -  person Josh Noe    schedule 23.04.2017
comment
@JoshNoe Это не паникер. Ознакомьтесь с 10 основными уязвимостями безопасности веб-приложений OWASP: A5 — неправильная конфигурация безопасности (например, 777 в каталоге загрузки), а A1 — внедрение. A1 + A5 = pwnd. google.com/search?q=nginx+ config+php+code+injection+jpg+comment В Linux веб-сервер работает под пользователем (например, www-data), поэтому каждый раз, когда сервер обслуживает файл, он является зарегистрированным пользователем в систему.   -  person Pocketsand    schedule 16.09.2017
comment
@Pocketsand Предоставление 777 пользователю, под которым работает ваш веб-сервер, обычно не открывает ваши файлы для всего мира. По умолчанию большинство веб-серверов не обслуживают какие-либо файлы по умолчанию, пока вы явно не настроите их.   -  person Josh Noe    schedule 19.09.2017
comment
@JoshNoe Я предполагаю, что вы говорите о том, настроены ли списки каталогов, но это не то, что здесь обсуждается. Комментарии касаются основных принципов защиты безопасности, которые помогают предотвратить такие вещи, как внедрение кода и атаки с обходом каталога. То, что вы говорите, аналогично высказыванию «Это паникерство — говорить, что люди должны запирать свои двери, если их шторы уже закрыты».   -  person Pocketsand    schedule 19.09.2017
comment
В дополнение к тому, что говорили другие, я бы рекомендовал наименее безопасным разрешениям для такого каталога быть 1777 (обратите внимание на липкий бит - это важно), а файлы должны быть в худшем случае 775 (с соответствующей группой и владельцем пользователя) . Почти всегда есть лучший вариант, чем установка каталога на 777. Например, на правильно сконфигурированной машине хоть и все могут писать в /tmp, но не в 777. Это 1777, что означает, что когда кто-то создает там файл, права доступа к этому файлу определяют, кто может удалить/переименовать его, в то время как 777 каталоги по умолчанию позволяют сделать это любому.   -  person Score_Under    schedule 09.02.2018
comment
Это, конечно, все при условии, что вы настроили свой веб-сервер так, чтобы он не запускал скрипты в этом каталоге или не обрабатывал .htaccess файлы оттуда и т. д.   -  person Score_Under    schedule 09.02.2018
comment
Обычно 755 или a+x (доступен для чтения пользователю, группе и миру, доступен для записи пользователю, исполняемый пользователем, группой и миром) достаточно.   -  person    schedule 14.04.2018


Ответы (7)


Если вы собираетесь использовать консольную команду, это будет:

chmod -R 777 /www/store. Опции -R (или --recursive) делают его рекурсивным.

Или, если вы хотите, чтобы все файлы в текущем каталоге имели все права доступа:

chmod -R 777 ./

Если вам нужна дополнительная информация о команде chmod, см.: Разрешение на доступ к файлам

person petervaz    schedule 30.11.2011
comment
и если у вас есть символическая ссылка на указанную папку, чтобы изменить разрешения на символическую ссылку, выполните chmod -h 777 /some_path/symlink - person xxjjnn; 15.01.2017
comment
Иногда вам нужно добавить sudo, чтобы заставить его работать. sudo chmod -R 777 /www/store - person Mingtao Sun; 07.01.2020
comment
preview.redd.it/ - person Henke; 19.11.2020
comment
Примечание chmod -R 777 /some/path завершится неудачно, если вашей целью является одна из следующих файловых систем: NFTS / exFAT / FAT32. - person user3751385; 11.04.2021

Если под всеми разрешениями ты имеешь в виду 777

Перейдите к папке и

chmod -R 777 .
person Daniel Elliott    schedule 30.11.2011

Вы можете дать разрешение на папку и все ее содержимое, используя опцию -R т.е. Рекурсивные разрешения.

Но я бы предложил не давать разрешение 777 на всю папку и все ее содержимое. Вы должны дать определенное разрешение для каждой подпапки в папках каталога www.

В идеале дайте разрешение 755 из соображений безопасности для веб-папки.

sudo chmod -R 755 /www/store

Каждое число имеет значение в разрешении. Не давайте полного разрешения.

N   Description                      ls   binary    
0   No permissions at all            ---  000
1   Only execute                     --x  001
2   Only write                       -w-  010
3   Write and execute                -wx  011
4   Only read                        r--  100
5   Read and execute                 r-x  101
6   Read and write                   rw-  110
7   Read, write, and execute         rwx  111
  • Первый номер 7 — чтение, запись и выполнение для пользователя.
  • Второй номер 5 — чтение и выполнение для группы.
  • Третий номер 5 - Читать и выполнять для других.

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

Больше информации :

  1. Понимание прав доступа к файлам: что означает «Chmod 777»?
  2. Какие права доступа к файлам следует установить в корневом каталоге?
  3. Почему /var/www не должен иметь chmod 777
person Somnath Muluk    schedule 24.08.2016
comment
Зачем минусовать? Это неправильный ответ? Downvoter, пожалуйста, объясните, чтобы я мог улучшить качество ответа. - person Somnath Muluk; 30.08.2016
comment
Я не отрицал, но думаю, причина в том, что ваш ответ не распространяется на вопрос ОП. Это все еще хороший ответ, просто не для этой темы. - person Marijke Luttekes; 27.09.2016
comment
@MarijkeLuttekes: уже есть ответы, которые проливают свет на то, как предоставить 777 разрешений для папки. Я не собираюсь отвечать. Я говорю, чтобы вообще не давать 777 разрешение на папку www. См. первый комментарий к вопросу об анубхаве. Вместо этого дайте 755 или необходимые разрешения. Иногда мы понимаем из вопроса, что ОП движется в неправильном направлении. Затем мы должны указать путь, по которому следует следовать. Не только OP потребует решения. С таким же вопросом на эту страницу придет другой человек, чтобы найти ответ, тогда этот человек поймет, что это за ответ. - person Somnath Muluk; 27.09.2016
comment
Это должно быть отмечено как правильный ответ. В то время как другие ответы дают «решение» проблемы, этот объясняет, как должна быть настроена типичная структура папок. Очень редко, если вообще когда-либо, вы захотите создать веб-папку 777. Прочтите дополнительные информационные ссылки, предоставленные @SomnathMuluk, чтобы вы могли понять, почему. - person Loligans; 25.10.2016
comment
после прочтения думаю 754 тоже хороший выбор - person Battle Hawk; 25.03.2019
comment
+1, безусловно, лучшая доставка двоичных разрешений в ответе, которую я когда-либо видел! Спасибо за этот easy on the eyes разбор! - person JayRizzo; 28.10.2019
comment
очень хорошо объяснили, спасибо! - person Arthur Zopellaro; 22.03.2020

Вы также можете использовать chmod 777 *

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

ПРИМЕЧАНИЕ. Это следует делать в папке, в которой находятся файлы. Для меня это были изображения, у которых была проблема, поэтому я пошел в папку с изображениями и сделал это.

person spasticninja    schedule 22.09.2014
comment
Нет, не работает на Ubuntu. Новые файлы имеют другие разрешения, чем те, которые уже были в каталоге. - person DanoPlurana; 15.11.2018

Да, очень правильно, что опция -R в команде chmod делает файлы/подкаталоги в данном каталоге получающими разрешение 777. Но, как правило, не рекомендуется присваивать 777 всем файлам и каталогам, так как это может привести к небезопасности данных. Постарайтесь быть очень конкретным при предоставлении всех прав на все файлы и каталоги. И чтобы ответить на ваш вопрос:

chmod -R 777 your_directory_name

... буду работать

person Kuldip Singh Behal    schedule 23.06.2015

для Mac должно быть «суперпользователь»;

итак сначала:

sudo -s 
password:

а потом

chmod -R 777 directory_path
person dukegod    schedule 21.01.2016

Это не сработало для меня.

sudo chmod -R 777 /path/to/your/file/or/directory

Я также использовал -f.

sudo chmod -R -f 777 /path/to/your/file/or/directory
person Janaka Pushpakumara    schedule 21.12.2017