Владелец / var / www для доступа к apache2 и ftp

Я установил 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?

3
задан 16 August 2013 в 21:56

2 ответа

Я бы порекомендовал установить его в собственность 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, так как она предназначена для непривилегированной группы без доступа для записи каких-либо файлов (как я объяснил выше).


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

0
ответ дан 16 August 2013 в 21:56

Идеальное разрешение - сделать себя владельцем и 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, а не на администрировании сервера.

0
ответ дан 16 August 2013 в 21:56

Другие вопросы по тегам:

Похожие вопросы: