Полномочия каталога Apache для интранет компании

У меня есть интранет компании, которую я недавно переместил от Novell до Linux. Я пытаюсь настроить полномочия пользователя, и я схожу с ума.

Существует пара дюжины отделов, каждого со специализированным каталогом в веб-корне. Существуют также общие каталоги для CSS, шаблонов, изображений, и т.д.

Я хочу, чтобы у всех пользователей были доступ только для чтения ко всему сайту и доступ для чтения-записи только к каталогу их отдела.

Что я уже попробовал:

  • Настройте группу пользователей для каждого каталога и назначенных пользователей группам по мере необходимости. Столкновение с полномочиями и проблемами наследования владения.

  • Созданный проверочный пользователь и затем созданный htdocs папка в корневом каталоге проверочного пользователя. Затем созданный ссылка, переименованная в него к названию отдела, и, бросил ссылку в основной htdocs каталог. Доступ для чтения прекрасен, но я не могу перечислить содержание того каталога при использовании DreamWeaver или клиента FTP от корня htdocs.

Я чувствую, что существует некоторая простая-но-крайне-важная часть информации, которую я пропускаю. Selectively, настраивающий доступ для чтения-записи к htdocs подкаталогам, не может возможно быть этим трудным.

Совет для неопытного пользователя, привыкшего к Novell и IIS?

5
задан 31.01.2012, 14:00

0 ответов

Скажем, у Вас есть Sue & Sam в Продажах и Harry и Hermione в HR.

  • Создайте пользователей, предъявляют иск, sam, изматывают, hermione
  • Создайте час групп и продажи.
  • Добавьте предъявляют иск и sam групповым продажам.
  • Добавьте изматывают и hermione для группировки часа.
  • создайте час папок и продажи в /var/www/htdocs
  • группа изменения часа папки для группировки часа
  • так же продажи
  • установите бит группы так, файлы, созданные в продажах и час, наследовали группу
  • полномочия набора так группа могут записать, другие могут только читать
  • для удобства создайте softlink к часу от hermione и корневых каталогов harry
  • так же народ продаж.
  • Apache редактирования конфигурируется по мере необходимости (например, основанный на имени виртуальный сервер для sales.example.com)

Полезные команды (см. страницы справочника),

  • mkdir
  • показанный
  • chgrp
  • groupadd
  • useradd
  • groupmod
  • ln

† или везде, где docroot Apache

1
ответ дан 07.12.2019, 18:39

Полномочия файла в Linux слушают назад старые корни Unix, из которых вырос Linux. Возможно, руководство, такое как этот по TuxFiles.org или этому материалу от TLDP может помочь Вам понять основную структуру полномочий.

Инструменты, с которыми по всей вероятности необходимо ознакомить себя, показывают и chmod. Или альтернативы GUI, если Вам установили GUI на Вашем сервере.

0
ответ дан 07.12.2019, 18:39

Ваши потребности могут быть лучше удовлетворены ACLs, а не классической моделью полномочий UNIX.

Сделайте одну группу для доступа только для чтения везде, затем сделайте одну группу для каждого отдела. Затем используйте setfacl ("файл набора ACL"), чтобы дать доступ для чтения группы только для чтения ко всем папкам и дать каждый доступ для записи групп к его папке отдела.

К сожалению, необходимо будет искать синтаксис для setfacl. Я не очень знаком с ним. Для запущения Вас вот, мой cronjob, который дает апачскому пользователю на моем полном доступе сервера к public_html каталогу в доме каждого пользователя:

#!/bin/sh
HOME_DIR="/home"
WWW_DIRNAME="public_html"
WWW_USER="www-data"
setfacl -Rm "u:${WWW_USER}:rwX,d:u:${WWW_USER}:rwX" "$HOME_DIR/*/$WWW_DIRNAME"

Я поместил это в задание крона так, чтобы любые файлы, что я вставил свой public_html каталог, были вскоре сделаны доступными для апача.

0
ответ дан 07.12.2019, 18:39

При хранении с идеей групп создайте все каталоги, в которых Вы нуждаетесь для всех своих групп.

Сделайте все под веб-корнем принадлежавшим www-данным или апачу или что когда-либо пользователь Ваш веб-сервер выполняет под тем, таким образом, это будет иметь доступ. Это сделает все принадлежавшим веб-серверу и будет независимо группы веб-сервера:

EX: chown -R www-data:www-data /var/www

Затем измените группу для каждой из тех папок группы:

EX: chown -R www-data:group1 /var/www/group1

После того как все папки имеют правильные группы, можно добавить доступ для чтения-записи группы к ним:

EX: chmod -R g+rw /var/www/*

0
ответ дан 07.12.2019, 18:39

Теги

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