Пользователь хочет, чтобы PHP мог записывать файлы в своем каталоге

Пользователь хочет, чтобы PHP записывал файлы в свою директорию /home/, он советует мне сделать usermod -a -G www-data username где username это его имя пользователя. Я не был уверен, было ли это проблемой безопасности или нет.

Как лучше всего подойти к этому?

2 ответа

Решение

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

Например, предположим, что два пользователя делают этот запрос и добавляются в www-data группа, и каждый пользователь открывается ~/www-shared к www-data группа. Тогда каждый сможет читать и писать другим www-shared каталог.

Списки контроля доступа выглядят намного более подходящими для заявленной цели. Это требует, чтобы ваша операционная система и файловая система поддерживали ACL. В Linux убедитесь, что файловая система смонтирована с acl вариант. Затем пользователь может запустить setfacl -m user:www-data:rwx ~/www-shared поделиться каталогом с www-data пользователь.

Тем не менее, эта проблема звучит как то, с чем сталкивались многие люди, работающие на веб-серверах. Так что может быть гораздо лучшее решение, использующее набор инструментов Apache.

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

Кроме того, любые другие пользователи в системе могут читать и записывать файлы данного пользователя с помощью простого сценария php.

Как правило, не стоит предоставлять веб-серверу больше прав на запись / чтение, чем необходимо. Таким образом, вы можете захотеть расширить разрешения только в каталоге (или даже в файле), которому требуется доступ для записи. Это может быть каталог загрузки, например.

лайк...

chgrp www-data /home/foobar/public_html/wordpress/uploads
chmod -R g+rwX /home/foobar/public_html/wordpress/uploads
Другие вопросы по тегам