Пользователь хочет позволить 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