Каковы рекомендации по разрешениям для каталогов Apache, доступных для записи?

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

  1. Я могу сделать так, чтобы пользователь Apache работал как владелец каталога, чтобы он выглядел так:

    drwxr-xr-x 2 www admin 68 Sep 24 2007 uploadedfiles

  2. Я могу дать разрешение на запись «другим», где Apache является одним из других:

    drwxr-xrwx 35 egbert admin 1190 Mar 9 13:17 uploadedfiles

Один из них безопаснее другого?


person Community    schedule 11.03.2009    source источник
comment
Stack Overflow — это сайт для вопросов по программированию и разработке. Этот вопрос кажется не по теме, потому что он не о программировании или разработке. См. раздел О каких темах я могу задать здесь в Справочном центре. Возможно, Суперпользователь или Unix & Linux Stack Exchange лучше спросить. См. также раздел Где размещать вопросы о Dev Ops?.   -  person jww    schedule 28.05.2016


Ответы (5)


Самый ограниченный доступ, в данном случае эксклюзивный доступ к www/admin с разрешением 0750, всегда самый безопасный. Обратите внимание, что в приведенной выше маске разрешений пользователям, которые не являются ни www, ни членами admin, вообще не разрешен доступ к содержимому каталога; это делается для того, чтобы уменьшить вероятность того, что неавторизованная сторона, вошедшая в систему, получит доступ к потенциально конфиденциальной информации, загруженной пользователями.

Не забывайте, что на большинстве платформ *nix у вас также есть третий, чрезвычайно гибкий вариант, то есть настройка ACL с помощью setfacl. ACL — это надмножество того, что может быть достигнуто с помощью обычных битов разрешений и методов владения. ACL являются предпочтительным вариантом, когда вы сталкиваетесь со сложными настройками безопасности (включая разрешения для каждого пользователя, владение по умолчанию и т. д., но вам может потребоваться сначала добавить acl к /etc/fstab в параметрах монтирования тома, на котором размещен ваш каталог, см. man mount.) Вы можете использовать списки управления доступом, если двум или более пользователям требуется доступ к рассматриваемому каталогу, но они не являются членами, скажем, группы admin.

person vladr    schedule 13.03.2009

Здесь нужно задать два вопроса: во-первых, кому еще (если вообще кому-то) нужен доступ к этим файлам? Есть ли другие процессы, которые воздействуют на эти файлы, от имени кого они работают и как это будет взаимодействовать с выбранным решением? Если нет других процессов или пользователей, обращающихся к файлам, я бы сделал пользователя apache владельцем, так как это все, что нужно, и это соответствует одному из старейших принципов безопасности — позволять только тем, кто нужен доступ к чему-либо.

person Harper Shelby    schedule 11.03.2009

Если система используется для других целей, вам, вероятно, следует избегать предоставления разрешений через «других». Предоставление разрешений здесь в основном означает, что что-либо еще, работающее на этом компьютере, или доступ к этому компьютеру будет иметь права на эти файлы.

Кроме того, вы можете создать дополнительную группу и сделать apache членом группы, а любого, кто является администратором, и изменить владельца группы на эту группу и предоставить разрешения этой группе. Если вы используете группу, вам, вероятно, также потребуется установить бит setgid в каталоге. Когда бит setgid установлен, все созданные файлы получат такое же членство в группе родительского каталога.

person Zoredache    schedule 11.03.2009

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

drwxr-xr-x 2 www admin 68 24 сентября 2007 г. загруженные файлы

person jedberg    schedule 13.03.2009

Предоставление доступа для чтения другим также является угрозой безопасности. Wordpress, например, имеет файл, содержащий имя пользователя и пароль базы данных.

person andre    schedule 22.12.2012