Назад | Перейти на главную страницу

Разрешения Apache и файловой системы

Я борюсь с этим. Предположим следующее:

У пользователя с именем «deploy» в домашнем каталоге есть каталог с именем example.com. В нем есть несколько файлов, и их права доступа установлены так:

drwxrwxrwx 6 deploy deploy 4096 2010-02-10 21:06 example.com

Также есть свежая установка apache 2, работающая как www-data: www-data.

Мне нужно, чтобы файлы оставались собственностью deploy: deploy, но мне нужен apache для записи в эти файлы.

Не следует ли добавлять www-данные в группу развертывания или наоборот разрешать apache писать в каталог example.com?

В моем файле / etc / groups показано (для краткости усечено):

www-data:x:33:deploy
deploy:x:1000:www-data

Однако пользователь www-data не может писать в каталог. Это сводит меня с ума! Помогите?

Я думаю, что пользователю www-data нужны как минимум разрешения на чтение и выполнение в родительском каталоге, если не весь путь к каталогу. Если домашний каталог пользователя ограничен, скажем, 700 (drwx------), то это также заблокирует групповую запись в дочернем каталоге. Конечно, изменение домашнего каталога может иметь другие последствия (например, для ssh), поэтому вам может быть лучше поместить каталог пользователя example.com в Apache. htdocs область - что потенциально решает проблему, хотя у вас уже есть групповая настройка.

Чтобы проверить свою настройку, вы можете использовать

$ sudo -- su -c "ls -l /home/deploy/example.com" www-data

или даже

$ sudo -- su -c "touch /home/deploy/example.com/dummy" www-data

чтобы узнать, можете ли вы записать в этот каталог как www-data.

Рекурсивное назначение www-data как владельца материала, а не только верхней папки. Это должно делать