CHMOD 777 - требование этого является проблемой сервера? - PullRequest
0 голосов
/ 13 октября 2011

Если скрипт PHP на сервере не может создать каталог, обычно это происходит потому, что PHP работает как apache / nobody?Таким образом, вы можете сказать, что сервер неправильно настроен?(или просто используя стандартную конфигурацию)

В целях безопасности было бы лучше, если бы php работал от имени пользователя, и если это так, возникнет ли эта проблема (требующая 777)?Я так не думаю, но я подумал, что попрошу ...

Ответы [ 2 ]

2 голосов
/ 13 октября 2011

Итак, можно ли из этого сказать, что сервер неправильно настроен?

Нет. Так и должно быть. PHP-скрипты, выполняемые Apache, запускаются от имени пользователя www-data (в Ubuntu). www-data практически не имеет прав на запись на весь сервер. И так оно и должно быть. Если вы пишете даже слегка небезопасный php-скрипт (например, подверженный внедрению кода ), и он запускается как root, злонамеренный посетитель может стереть весь ваш жесткий диск.

В целях безопасности было бы лучше, если бы php работал от имени пользователя?

Кого вы имеете в виду под пользователем ? Если это root, см. Выше. Если это пользователь с привилегиями root, см. Выше.

Будет ли эта проблема (требуется 777) по-прежнему возникать?

Проблема в том, что вы используете код, который требует полного разрешения на чтение, запись и выполнение в чужом каталоге.

Если это каталог, который будет использоваться только вашим сценарием, www-data должен принадлежать ему. Проблема решена.

Если вы используете скрипт php, который должен иметь доступ к чувствительным системным областям, вы можете переосмыслить способ сделать это. Многие задачи, которые должен выполнять php-скрипт, могут быть запланированы скриптом, а затем выполнены заданием cron.

И последнее, но не менее важное: если вы абсолютно должны , вы можете запустить php от любого пользователя. Просто установите модуль mpm_itk_module и добавьте

    AssignUserId user group

внутри тега <VirtualHost>.

Но имейте в виду, что - как я уже говорил - с плохим сценарием и неправильными привилегиями может произойти очень плохое (TM).

2 голосов
/ 13 октября 2011

IMO у вас никогда не должно быть каталога 777.Это не имеет большого значения для веб-сервера без пользователей, но это никогда не требуется и его следует избегать в любом случае.

PHP на debian работает с тем же пользователем и группой, что и apache (www-data).Поэтому вам просто нужно настроить элементы управления доступом к файлам, чтобы позволить этому пользователю делать то, что вам нравится.Вам никогда не понадобится 777.

Другие дистрибутивы имеют похожие конфигурации, но вы всегда можете отредактировать файлы apache2.conf и php.ini , чтобы получить любой желаемый результат.

...