После новой установки Ubuntu я пытаюсь выяснить, как сделать разрешения для Apache2. Я использую мои настройки для локальной разработки для сайтов CraftCMS. Это означает, что Apache должен иметь возможность обслуживать файлы, мне нужно иметь возможность редактировать файлы, а инструмент командной строки CraftCMS php должен запускаться из терминала. И это должно работать для нескольких виртуальных хостов.
Я настроил рабочий процесс, но я не уверен, что это правильный путь для достижения всего, чего я хочу.
ТАК я сделал следующее:
После установки всего я выполнил следующие команды для установки разрешений:
sudo adduser $USER www-data
sudo chown $USER:www-data -R /var/www
sudo chmod 0774 -R /var/www
sudo chmod g+s -R /var/www
/var/www/
и подпапки на меня как владельца и www-данные как на группу. /var/www
будут иметь такие же разрешения. На данный момент все работает как запланировано. Я могу редактировать файлы, и Apache может запускать сайты локально. Одна вещь, которая не работает сейчас, это инструмент командной строки ./craft
, так как у него нет прав на запуск там. Чтобы исправить это, я предложил следующее решение:
alias craft="sudo -u www-data php ./craft"
С этим псевдонимом я могу запустить команду ./craft
как www-data, чтобы она всегда выполнялась, так как группа имеет все разрешения, необходимые для выполнения в папке /var/www
. (Я не уверен, что это хороший способ исправить это.)
Так вот, все «работает», но это похоже на «хакерский» способ заставить его работать… Я не уверен если это так, как это должно работать. И я хотел бы услышать улучшения.
sudo chmod 0774-R/var/www
Необходимо сделать это 2 командами. 1 для файлов. 1 для каталогов. Это более безопасно для использования 0 для других: обычно Вы только хотите, чтобы пользователь и группа смогли сделать что-либо с файлами. Наименьшее количество разрешающих полномочий было бы установлено как это:
find . -type f -exec chmod 640 {} \
find . -type d -exec chmod 750 {} \
Не высказывание Вас должны сделать это как это! 644, 755 или Ваши 774 является немного более разрешающим, но работает также. Ниже, чем 640/750 возможно также: 600 и 700, Вам так не нужна группа, но это почти никогда не имеет место. Я склонен использовать те 2 команды и если что-то не работает (т.е. запрещенное уведомление от веб-сервера), я был бы полномочия, и попробовать еще раз. Если я заканчиваю с рабочим веб-сайтом, где мне было нужно другим, я знаю, что существует файл, который имеет плохого владельца или полномочия.
ремесло псевдонима = "sudo-u www-данные php./ремесло"
Это работает, но это необходимо? Вы сказали, что использовали 774 в качестве полномочий, таким образом, Ваша группа должна смочь выполнить его. Проверьте от пользователя с
groups
Вы находитесь действительно в группе www-data
.