Я прошу прощения заранее, если этот вопрос лучше подходит для Stack Overflow.
У нас есть сервер cPanel CentOS, и мы хотим поделиться некоторой базой кода PHP с другим пользователем. У нас нет open_basedir
включен в любой учетной записи и отключен в httpd. Я создал символическую ссылку на базу кода и установил 0711
разрешений рекурсивно, но PHP по-прежнему выдает ошибки разрешений при включении скриптов, находящихся в домашнем каталоге другого пользователя.
Мы надеемся добиться того, чтобы пользователь x мог получить доступ к базе кода пользователя y только с разрешениями на выполнение. Мы не против, если пользователь y увидит код, который нам просто не нужен для записи в базу кода. Поскольку эта база кода постоянно обновляется, мы бы предпочли не просто копировать код в домашний каталог пользователя y.
Любые предложения о том, как этого добиться?
ОБНОВИТЬ: Я думал, что PHP может работать в безопасном режиме, я проверил php.ini, у меня есть оба safe_mode
и safe_mode_gid
установлен в Off
Если вы хотите поделиться кодом PHP-скрипта с другим пользователем / группой, вам обязательно нужно установить разрешения на чтение для пользователя / группы вашего php-процесса для файлов и выполнить разрешения для каталогов в пути к файлам.
Чтобы найти файл, пользователю потребуются разрешения как минимум --x (1) для всех родительских каталогов (т.е. / home и / home / you). -rx (5) требуется только в том случае, если вы еще не знаете имя нужного файла. Для выполнения сценария php в качестве сценария сервера требуются только разрешения -r- (4) (apache просто читает сценарий и выполняет его внутренне), а для выполнения из командной строки требуется (обычно) -rx (5). Исключением является ситуация, когда ваша платформа позволяет использовать бит установленного идентификатора пользователя / группы, и в этом случае вы можете обойтись без --x (см. Man chmod).