Я пытаюсь узнать о разрешениях на веб-сервере Linux с Apache.
Некоторые подсказки к системе:
Сервер, с которым мне приходится играть, основан на Fedora. Apache работает как apache:apache. Чтобы позволить, например, php записывать в файл, файл должен быть chmod 777. 755 недостаточно.
Что мне интересно, так это то, как настроить права доступа, например, на «общем веб-хосте».
Моя основная проблема заключается в том, что если я установлю разрешение, чтобы один пользователь не мог получить доступ к домашней папке другого, то apache также не сможет читать из папки public_html.
Чтобы не пускать пользователей, мне нужно установить chmod 700. Но чтобы позволить apache читать, мне нужно хотя бы выполнить в мире, так что 701 в принципе работает, но не пускает некоторых пользователей.
Так что я действительно застрял в том, что делать. Решали добавить пользователя apache в список ниже, чтобы избежать необходимости добавлять флаг выполнения мира, но разве это плохо? Должно ли это быть наоборот, пользователи в группах ниже также должны быть в группе apache?
Я стремился иметь 4 группы:
1. веб-приложение
То же самое, что и dev_int, но это единственный файл, который может находиться в папке webapp/live, например, для обновления из репозитория.
2. dev_int
может читать, писать и выполнять все в «веб-корне», включая два ниже, но ничего кроме веб-корня
3. dev_ext
может читать, записывать и выполнять во всех клиентских папках, но не может получить доступ ни к чему, кроме корня веб-приложения
4. клиенты
Основные учетные записи ftp. Имеет домашнюю папку с public_html, но не может получить доступ к другим домашним папкам
Пример структуры папок:
- Ни один пользователь из вышеупомянутых групп не может выйти за пределы
- some_project : только dev_int
- WebApp
- Live : только веб-приложение
- постановка : dev_int и: dev_ext
- клиенты : dev_int и: dev_ext
- client_1 : dev_int,: dev_ext и client1: клиенты
- public_html
- client_1 : dev_int,: dev_ext и client1: клиенты
- DEV
- разработчик_1 разработчик_1: dev_int ИЛИ: dev_ext
- public_html
- разработчик_1 разработчик_1: dev_int ИЛИ: dev_ext