Как дать права apache на папку в ubuntu
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 ./*
вам надо согласовать принадлежность файлов в docroot-е и пользователя, от имени которого apache обслуживает запросы к этому сайту.
то есть одно из двух:
поменять принадлежность файлов и каталогов, например, так (исхожу из предположения, что apache обслуживает запросы от имени пользователя www-data):
установить и задействовать модуль mpm-itk (скрее всего, имеется в репозитории вашего дистрибутива в пакете под схожим названием, например, apache2-mpm-itk) и внутри блоков virtualhost добавить директивы примерно такого вида:
подробности смотрите в документации, прилагающейся к этому пакету, либо на сайте разработчиков.
Точного ответа дать не могу, но так устроена система.
Все дело в umask выставляемой системой для пользователя.
Проверить не могу, но предположительно это опция задается при компиляции ядра.
Странно конечно, что у Вас новому файлу дается 700, как минимум должно быть 600, в моем случае 644.
Можно использовать алиасы или пойти простым путем:
Не забудьте перелогиниться.
Для Вашего случая этого более чем достаточно.
Апачу новый файл доступен для чтения, обычно этого достаточно.
Если же нужен полный доступ, кроме упомянутого модуля 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 для редактирования, воспользуйтесь командой:
Если вам не нравится gedit, замените его любым другим текстовым редактором (например, nano). Можно обойтись без sudo, но в этом случае вы, скорее всего, сможете только просматривать содержимое файла, но не изменять его.
Не лишним будет определить директиву ServerName. Стандартное значение — 127.0.0.1.
Директивы могут занимать несколько строк, в этом случае их называют блочными. Рассмотрим для примера директиву Directory:
Давайте выясним, что они означают.
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.
Если вы хотите прочесть о каком-то конкретном аспекте этой темы, напишите в комментариях.
Читайте также: