Как дать права apache на папку в ubuntu

Обновлено: 02.07.2024

AuthName "WHO ARE YOU?"

AuthUserFile /var/www/main.pwd файл в котором хранятся пароли.
Так же пароль можно задать при помощи .htaccess можно использовать и для установки пароля на доступ к определенным страницам или разделам вашего сайта. Делается это путем создания в нужном подкаталоге файла .htaccess, в который пишется следующее:

Здесь не будут рассматриваться все параметры этой команды, но вы можете сами прочитать подробности, запустив htpasswd в unix shell или ознакомившись с соответствующей страницей документации по Apache.
Итак, изначально у нас еще нет файла с паролями и нам нужно его создать :
htpasswd -c passwords test1
New password:
Re-type new password:
Adding password for user test1
После выполнения данной операции htpasswd создаст файл passwords, в котором окажется пользователь test1 и его пароль в зашифрованном виде:

htpasswd passwords test2
New password:
Re-type new password:
Adding password for user test2

cat passwords
test1:zgco1KREjBY8M
test2:eN3uA6t0kzV1c

Сейчас попробуйте обратиться к тому каталогу, в котором мы размещали .htaccess – браузер спросит у вас пароль, чего мы и добивались. Пока не будет введен правильный логин и пароль, посетитель не увидит соответствующей страницы.
В качестве параметра к директиве require мы указали valid-user. Это означает, что любой пользователь, который есть в используемом файле с паролями, может иметь доступ к защищенному ресурсу. Однако, согласитесь, удобно иметь все пароли в одном файле, а права на конкретные ресурсы давать только определенным пользователям. Это тоже реализуемо. Например, мы хотим дать доступ только пользователю test2. Делаем так :
require user test2
Еще можно объединить пользователей в группы и давать доступ не конкретным логинам, а группам. Это можно сделать с помощью директивы AuthGroupFile:
AuthGroupFile /path/to/file/with/groups
В файле /path/to/file/with/groups создаем группы примерно так :

Почему новосозданному файлу new.php права присваиваются 644?

Зы: надоело набирать chmod -R 777 ./*


6,844 2 2 золотых знака 23 23 серебряных знака 52 52 бронзовых знака надоело набирать chmod -R 777 ./* — очень похоже на проблему неверной постановки задачи

вам надо согласовать принадлежность файлов в docroot-е и пользователя, от имени которого apache обслуживает запросы к этому сайту.

то есть одно из двух:

поменять принадлежность файлов и каталогов, например, так (исхожу из предположения, что apache обслуживает запросы от имени пользователя www-data):

установить и задействовать модуль mpm-itk (скрее всего, имеется в репозитории вашего дистрибутива в пакете под схожим названием, например, apache2-mpm-itk) и внутри блоков virtualhost добавить директивы примерно такого вида:

подробности смотрите в документации, прилагающейся к этому пакету, либо на сайте разработчиков.


66k 154 154 золотых знака 66 66 серебряных знаков 203 203 бронзовых знака

Точного ответа дать не могу, но так устроена система.
Все дело в umask выставляемой системой для пользователя.
Проверить не могу, но предположительно это опция задается при компиляции ядра.
Странно конечно, что у Вас новому файлу дается 700, как минимум должно быть 600, в моем случае 644.

Можно использовать алиасы или пойти простым путем:

Не забудьте перелогиниться.
Для Вашего случая этого более чем достаточно.


1,546 1 1 золотой знак 11 11 серебряных знаков 30 30 бронзовых знаков Это Ваше сугубо-личное мнение. Мой ответ решает проблему пользователя.

Апачу новый файл доступен для чтения, обычно этого достаточно.

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

Добавить вас в группу, которую использует apache:

После чего нужно зайти заново в систему. Вам будут доступны файлы группы www-data если у них стоит соответствующий режим для группы (например rw-rw-r--). Но чтобы новые файлы были с таким режимом нужно вам и апачу установить umask 002 . Кроме того, чтобы новые файлы были в нужной группе, нужно временно сменить группу по-умолчанию:

Если данный пользователь только для этого и создан, то наверно лучше подойдёт первый вариант, или сделайте группу www-data для пользователя основной:

Тогда umask 002 достаточно добавить в

Если apache создаёт новые файлы, и они должны быть доступны пользователю, нужно так же поставить umask 002 в /etc/apache2/envvars , если есть такой файл, либо в скрипт запуска и рестартовать апач.

Короче поставил я себе апач на убунту через apt-get install apache2.
Запустил его, захожу на сайм сайт, а там такое (на скриншоте) Уже незнаю что делать, пишет ошибку 403.

Кто знает- помогите! с меня + А то я уже сеьезно запарился с этим.

Логи апача лежат в /var/log/apache (или /var/log/apache2). По-умолчанию, корень веб-сайта — в /var/www, страничка по-умолчанию index.html. Настройки апача /etc/apache2. apache2 по-умолчанию крутится с правами пользователя www-data. Спасибо конечно за розъяснение, но я ниче непонял. Что у меня бочинено?. То что root каталог /var/www это я понял, а что зделать что бы когда я помещу сюда сайт т.е в /var/www работал он (ну отображало в браузере) что зделать что бы когда я помещу сюда сайт т.е в /var/www работал он (ну отображало в браузере)

Сделать, чтобы пользователь www-data имел доступ к этому каталогу и файлам в нём хотя бы на чтение. man chown, man chmod.

Для apache2 так и должно быть. Его конфигурация в apache2.conf и прочих файлах и каталогах, которые в нём Include'ятся. Для apache2 так и должно быть. Его конфигурация в apache2.conf и прочих файлах и каталогах, которые в нём Include'ятся. eddy, ну что Вы лезете не разобрав броду со своей мандривой? Ежу понятно, что можно заставить apache брать конфиг хоть из /wigwam/iroquois.conf, но мы-то говорим про вполне конкретный частный случай. И в этом конкретном частном случае apache2 ищет конфиг в /etc/apache2/apache2.conf, а остальные файлы в него просто включены.

Сделал так:
$ sudo chown -R www-data: /var/www -Помогло!

Спасибо тебе watashiwa_daredeska огромное!

Конечно вопрос тупой, но все же! как дать права доступа к целому каталогу ??

Имеется введу chmod 777

как дать права доступа к целому каталогу ??

Имеется введу chmod 777

Неполучается. Неможешь мне написать пример. Папку на которую нада доступ поставить лежит в /var/www/forum

пробывал chmod -r /var/www/forum неполучается!

Неполучается. Неможешь мне написать пример. Папку на которую нада доступ поставить лежит в /var/www/forum

В предыдущей статье о LAMP мы выполняли установку и базовую настройку. Сегодня поговорим о конфигурационных файлах Apache. Вы узнаете, как изменять глобальные настройки веб-сервера с учетом своих потребностей. В качестве примера я покажу, как запретить или ограничить доступ к папке.

Основной конфигурационный файл Apache в Ubuntu 16.04 и новее находится по адресу:

Установки, определенные в нем, могут быть перезаписаны в файлах .htaccess. Влияние каждого .htaccess распространяется на ту папку, в которой он находится и на все вложенные в нее папки. При этом, если во вложенной папке будет свой .htaccess, он будет иметь преимущество перед расположенным выше.

Синтаксис apache.conf и .htaccess.

Сразу скажу, что синтаксис этих двух документов идентичен.
Чтобы открыть apache.conf для редактирования, воспользуйтесь командой:

Синтаксис apache.conf и .htaccess

Если вам не нравится gedit, замените его любым другим текстовым редактором (например, nano). Можно обойтись без sudo, но в этом случае вы, скорее всего, сможете только просматривать содержимое файла, но не изменять его.

Не лишним будет определить директиву ServerName. Стандартное значение — 127.0.0.1.

Директивы могут занимать несколько строк, в этом случае их называют блочными. Рассмотрим для примера директиву Directory:

Синтаксис apache.conf и .htaccess

Давайте выясним, что они означают.

AllowOverride None запрещает использование файлов .htaccess в данной директории. Чтобы разрешить перезаписывать любые параметры, замените None на All. Вы также можете указать группы настроек, разрешенных к перезаписи. Например, чтобы разрешить только те директивы из .htaccess, которые меняют режим доступа, следует указать AllowOverride AuthConfig.

Require all granted разрешает доступ к директории для всех без исключений. В более ранних версиях Apache применялся другой вариант — Allow from all, имеющий то же значение.

Как запретить или ограничить доступ к директории?

Начиная с версии Apache 2.4 для регулирования доступа к директории используется директива Require. Она может располагаться как в глобальном файле настроек, так и в любом .htaccess. Раньше те же функции выполняли Order, Allow и Deny.

Итак, для того чтобы полностью запретить доступ, воспользуйтесь такой конструкцией:

Полностью запретить доступ надоедливому или регулярно вредящему пользователю можно таким образом:

Require not ip 123.456.789.012

подставив его ip вместо чисел.

Если убрать из этой конструкции not, доступ будет разрешен только с указанного ip. Можно также указать имя разрешенного или запрещенного хоста, указав вместо ip host.

Эти правила могут находиться внутри блочных директив <RequireAll> , <RequireAny> и , которые разрешается вкладывать друг в друга для построения сложных правил доступа. Подробнее об этом читайте в документации Apache.

После сохранения файла не лишним будет проверить его синтаксис — вдруг в процессе редактирования мы допустили ошибку или сделали опечатку? Для этого введем команду:

Как запретить или ограничить доступ к директории

При обнаружении ошибки будут указаны сведения о ней.

Чтобы изменения, внесенные в конфигурационные файлы, подействовали, необходимо перезапустить веб-сервер командой

В следующих статьях я продолжу рассказывать о связке LAMP.

Если вы хотите прочесть о каком-то конкретном аспекте этой темы, напишите в комментариях.

Читайте также: