2012-06-17 2 views
1

Есть ли способ запустить php-процессы через apache-запуск как пользователь, прошедший аутентификацию через ldap?Выполнение php-процессов apache как аутентифицированный пользователь

В настоящее время мы запускаем машины ubuntu в нашей интрасети, которые позволяют пользователям получать доступ к ssh, а также запускать веб-серверы с нашего внутреннего веб-сайта производства, а также веб-сайт разработчика для каждого пользователя. Все каталоги для нашего производственного сайта установлены в 0750, причем группа является группой ldap и пользователем www-data, принадлежащим к каждой группе ldap. Каждый из наших ~ 100 пользователей относится к определенному набору групп ldap, поэтому при входе через ssh они имеют доступ только к файлам/каталогам для своих соответствующих групп ldap. Мы также используем наши группы ldap для управления доступом r/w к нашему репозиторию svn.

Мы намерены перенести каталоги разработки пользователей на отдельные виртуальные хосты как пользователь, который владеет каталогом с помощью suexec/suphp (пока не совсем уверен, но он хорошо документирован). Однако пользователи также могут легко добавлять файлы на веб-сайт. Наша проблема заключается в том, что пользователь может добавить скрипт на веб-сайт, который затем может читать/копировать каждый другой скрипт на нашем веб-сайте. Возможно ли, чтобы скрипты php, выполненные через apache, выполнялись как аутентифицированный пользователь, чтобы они были ограничены в их доступе так же, как если бы они выполняли сценарий через командную строку?

Вот пример структуры каталогов:

Справочники:

drwxr-x--- 16 admin ldab_a proj_a 
drwxr-x--- 1 admin ldap_b proj_b 
drwxr-x--- 1 admin ldap_c proj_c 
drwxr-x--- 3 admin ldap_d proj_d 

Пользователи: Группы Членство

jane  (ldap_a,ldap_c) 
tom  (ldab_b,ldap_c) 
www-data (ldap_a,ldap_b,ldap_c,ldap_d) 

и искомая структура:

+0

Технически это возможно. Однако у меня есть проблемы, чтобы следовать вашим наброскам, поэтому, если вы можете сделать это немного более конкретным, например. с хорошим графическим представлением, добавленным к вашему вопросу, это должно быть легко ответить. – hakre

+0

Извините, что мой вопрос был не таким ясным, насколько это возможно. Надеюсь, это поможет, пожалуйста, дайте мне знать, если что-нибудь еще поможет. – user1462127

ответ

0

Я рекомендую вам посмотреть в этот проект: suPHP

С их сайта он говорит:

suPHP является инструментом для выполнения PHP-скриптов с правами их владельцев. Он состоит из модуля Apache (mod_suphp) и двоичного файла setuid root (suphp), который вызывается модулем Apache для изменения uid процесса, выполняющего интерпретатор PHP.

Надеюсь, что это поможет!

Смежные вопросы