Www-data Пользователь для доступа к файлам / папке вне / var / www /

Хорошо, есть ли способ для пользователя PHP (www-data) получить доступ к другим частям сервера, например, / home / username / another_folder / ?? Заранее спасибо.

Будет

EDIT: Я просто добавляю www-данные в другую группу? Или что-то в этом роде, или есть другой путь?

Solutions Collecting From Web of "Www-data Пользователь для доступа к файлам / папке вне / var / www /"

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

Или, если вам просто нужно разрешение на чтение, и это не проблема, которую другие пользователи в системе имеют доступ к чтению ваших файлов, а затем просто изменяйте разрешения своих файлов (в других местах), чтобы иметь разрешение на чтение для other . Например, 775 для ваших каталогов и 644 для ваших файлов.

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

Однако, если вы настраиваете «псевдонимы» или «виртуальные хосты» для своего веб-сервера, вы можете сделать другие места, которые были бы root-корнем по умолчанию, доступными по HTTP-запросам.

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

 // file permissoins /tmp/shared_by_all.txt -> 644 /home/user1 -> 751 or 755 /home/user1/shared_by_all.txt -> 644 /home/secureuser -> 750 /home/secureuser/myfile.txt -> 640 (or even 644 because of the containing directory permissions, other can not even enter the directory tree. so file is not accessible) // file: /var/www/read_file.php <?php echo file_get_contents('/tmp/shared_by_all.txt'); // ok! echo file_get_contents('/home/user1/shared_by_all.txt'); // ok!; echo file_get_contents('/home/secureuser/myfile.txt'); // fail!; ?> 

Вы можете изменить принадлежность группы ( chgrp ) вашей папки к www-данным (если www-data – это ее собственная группа).

Вы можете изменить права собственности на эту папку ( chown ) и chmod чтобы несколько пользователей могли получить к ней доступ. (Как сказал farzad)

Вы можете создать группу («me_and_web»), членами которой являются «имя пользователя» и «www-data», а chgrp -R me_and_web /home/username/another_folder