Я установил apache2 на Ubuntu Server 12.04 LTS на старом ноутбуке. В моей локальной сети он выступает в роли веб-сервера, который помогает мне изучать PHP (и Linux).
Владельцем по умолчанию для папки / var / www (где хранятся веб-страницы для apache) является www-data. С владельцем, установленным на www-data, я не могу копировать файлы / папки в эту папку по ftp. Если я изменю владельца папки / var / www на james (мой пользователь ftp), тогда я смогу переместить файлы через ftp, но у apache нет доступа к отображению каких-либо страниц или подпапок.
Каким должен быть правильный владелец, чтобы разрешить доступ для ftp-пользователей james и apache?
Я бы порекомендовал установить его в собственность james:james
.
В качестве альтернативы, вы можете оставить его как root:root
и указать sudo
для всех, кто там размещает файлы, но если вы работаете непосредственно в каталоге / var / www (вместо того, чтобы работать где-то еще и загружать файлы туда) это может быть не удобно, и не будет работать и с FTP.
Вы можете установить для владельца / var / www любое значение, если у пользователя www-data
есть права на чтение. Вы можете добиться этого, установив разрешения, разрешающие доступ для чтения по всему миру (как по умолчанию).
По умолчанию он принадлежит root:root
( не www-data
, как вы указали в вопросе).
В целях безопасности не хорошая идея установить его в собственность www-data
. www-data
предназначен для непривилегированной учетной записи, которая не может записывать в какие-либо файлы, а может только читать их.
Да, иногда вам может понадобиться дать www-data
разрешение на запись в данный файл, но в целях безопасности это должно быть строго ограничено этими конкретными файлами, и следует принять меры предосторожности, такие как отсутствие таких файлы исполняются веб-сервером в виде сценариев (т. е. находятся не там, где их можно интерпретировать как файлы PHP или CGI) и т. д.
Из соображений безопасности даже хуже идея установить права доступа к файлам для записи во всем мире (например, 777). Непривилегированные пользователи, такие как www-data
, не должны не иметь возможности писать в файлы в этом каталоге. Единственными людьми, которым нужен доступ для записи, будут люди, которые на самом деле пишут файлы там.
Каталог / var / www предназначен для вас, чтобы делать то, что вам нравится. Имеет смысл установить право собственности на тот аккаунт, который будет редактировать файлы. Вы можете создать группу для этой цели, если у вас несколько человек, но в данном случае это только вы.
Примечание: при создании группы создайте новую группу. Не не повторно использовать группу www-data
, так как она предназначена для непривилегированной группы без доступа для записи каких-либо файлов (как я объяснил выше).
www-data
или добавление людей в группу www-data
для того, чтобы дать этой группе права на редактирование, или установить / var / www как общедоступный (например, 777). Делая все это, вы потенциально открываете себя серьезным проблемам безопасности. Идеальное разрешение - сделать себя владельцем и www-данными в группе, назначить себя владельцем файлов с помощью sudo chown -R yourname:www-data /var/www/public_html/
и sudo chmod -R g+w /var/www/public_html/
и убедиться, что вы изменили каталог и имя пользователя соответствующим образом. Вы сможете писать файлы и процессы Apache не будут препятствовать. Я предлагаю это, так как OP запускает локальный экземпляр APACHE для практических целей и будет использовать множество скриптов или скриптов с открытым исходным кодом, таких как WordPress и т. Д., Для которых потребуется доступ на запись. Здесь безопасность не является главной проблемой, так как локальный сервер не будет использовать публичный ip, а простота установки, копирования и запуска скриптов имеет первостепенное значение. ОП может сосредоточиться на изучении PHP, а не на администрировании сервера.