Как крайний новичок, я испытываю трудности с управлением правами собственности и разрешениями на моем первом ящике. Что я не могу понять, так это как развернуть с помощью одного пользователя, мы назовем его deploy
и управляю моим приложением php с www-data
пользователь.
В настоящее время я знаю, что мой сервер работает как www-data
через эту функцию <?php echo(exec("whoami")); ?>
но я должен chown
между развертыванием и www-данными каждый раз, когда я развертываю. Должен быть более простой способ развертывания с одним пользователем и при этом работать как www-data.
РЕДАКТИРОВАТЬ: Вот результат ls-l для рассматриваемой папки. Вы увидите пользователя развернуть и группа www-pub, группа возникла из попытки добавить двух разных пользователей в новую группу и выбрать одного из них в надежде, что у них обоих будут разрешения (предупреждение newb)
drwxrwxr-x 4 deploy www-pub 4096 Mar 7 01:41 example.com
Я использую capistrano для развертывания под пользователем развернуть затем, как только это будет сделано, я перейду к www-данным, иначе я не могу использовать php для управления файлами. Я также не уверен, как даже изменить запущенный пользовательский apache.
Я прочитал и перечитал это несколько раз, чтобы проверить, правильно ли я понял. Похоже, что право собственности распределяется следующим образом:
www-data
пользовательdeploy
пользовательwww-data
пользовательМоя проблема здесь в том, что я не понимаю дилемму. Я считаю, что так и должно быть.
Если веб-сервер может писать в каталог, где хранятся сценарии PHP, вы просто просите кого-нибудь переписать ваше приложение. Веб-серверу традиционно предоставляется разрешение только на чтение и выполнение скриптов.
Я думаю, что последняя пуля причиняет вам боль. Делать НЕ попробуйте записывать файлы данных в файлы программ / приложений и между ними. Это плохая практика программирования. Только один раз создайте каталог, доступный для записи www-data
пользователь. Это тоже чревато опасностями, поскольку различные сеансы могут перезаписывать друг друга, но вы можете создать подкаталоги с помощью cookie / тега и поместить туда свои файлы. Не забывайте периодически очищать, если вы выбираете метод подкаталога.
Если я упустил суть, дайте мне знать. Кажется, это долгое время находилось в очереди «Без ответов». Если вы его исправили, «ответьте на свой вопрос» и закройте его. Если тот или иной ответ решает проблему, отметьте ее как решенную.
Изменение разрешений после развертывания - это нормально. Пишу скрипты для развёртывания кода. Какой у вас метод развертывания сейчас?