Назад | Перейти на главную страницу

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

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

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

Предлагаемая команда добавляет пользователя в 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