Хорошо ... У меня настроен сервер, и у меня есть 4 сайта, находящихся в / var / www /. Согласно этому сообщению, каждый каталог сайта и файлы под ним имеют корневой каталог: www-pub:
Как лучше всего обрабатывать разрешения для пользовательских www-данных Apache 2 в / var / www?
Мой пользователь, cdog, является частью www-pub, как указано в приведенном выше сообщении, и после дополнительных исследований я считаю, что umask настроен правильно.
Вопросы 1: Создание новых файлов в любом из каталогов / var / www / дает мне разрешения
cdog:www-pub -rw-r--r--
все остальные файлы
root:www-pub -rw-rw-r--
Меня заставили поверить (согласно вышеупомянутому сообщению), что любые новые созданные файлы будут более поздними.
Выпуск 2 Большинство этих каталогов с разрешениями
drwxrwsr-x
каталоги Joomla. Вход в серверную часть Joomla дает мне целую кучу недоступных для записи каталогов, что не подходит для обновления / установки расширений / плагинов и т. Д.
Во-первых, почему мои файлы не создаются с правильными разрешениями? Во-вторых, почему каталоги Joomla недоступны для записи?
Перед тем, как работать с файлами, вам необходимо установить свой umask.
umask 002
Пользователь маска определяет, какие разрешения получают новые файлы. Когда создается файл или каталог, система запускается с самыми разрешающими разрешениями (0666 и 0777 соответственно), а затем очищает биты, указанные в umask. Таким образом, значение umask по умолчанию 022 приводит к сбросу битов записи группы и мира, поэтому вы получаете 0644.
Чтобы создать файлы с правами на запись группы, вам нужно изменить umask на 002 (т.е. очистить только разрешение на запись для всего мира). Это можно сделать в конкретном сеансе оболочки с помощью umask 002
, но это не будет сохраняться между сеансами.
Есть несколько способов установить umask постоянно. Если pam_umask Модуль PAM установлен и настроен, вы можете установить его в /etc/login.defs
:
UMASK 002
В противном случае вы можете установить его в сценариях инициализации оболочки, либо ~/.bashrc
если вы хотите, чтобы он применялся только к вашему пользователю, или /etc/bash.bashrc
если вы хотите, чтобы он применялся ко всем пользователям:
umask 002
Похоже, вы используете www-pub, это помимо www-data группы?