Назад | Перейти на главную страницу

Предоставление системным службам UNIX доступа к домашним каталогам пользователей с ограниченным доступом

Мне нужно ограничить права доступа к каталогам пользователей в /home так что для некоторых учетных записей другие пользователи не могут читать файлы или компакт-диски с ними. Но мне все равно нужно предоставить системным сервисам доступ к ним.

Подход, который я использовал до сих пор: chgrp www-data домашний каталог и chmod o-rx их, поэтому они выглядят так

drwxr-x--- user www-data    user

Но я только что обнаружил, что если пользователь создал ~/.forward файл, postfix игнорирует его и доставляет почту локально. Если я chmod o+rx каталог, .forward снова работает. (Таким образом, это, казалось бы, предполагает, вопреки этому ответу, что либо .forward читается до того, как агент локальной доставки postfix получит почту, или агент локальной доставки не обращается к домашнему каталогу как пользователь.)

Как мне это обойти? Что делать, если есть другие системные службы, которым требуется доступ?

Другой подход может заключаться в chgrp some-system-group каталог и убедитесь, что все системные службы, которые обращаются к каталогу, находятся в some-system-group группа.

Это сработает? Это плохой план?

Есть ли другие подходы лучше?

Как задокументировано, с конфигурацией по умолчанию postfix принимает личность владельца почтового ящика перед попыткой доставки.

В частности:

Доставка через файлы ~ / .forward осуществляется с правами получателя. Таким образом, подобные файлы ~ / .forward должны быть доступны для чтения получателю, а их родительский каталог должен иметь разрешение на выполнение для получателя.

Если это не работает для вас, вы каким-то образом испортили разрешения.

С классическими разрешениями unix вы столкнетесь с проблемами. Что вы можете попробовать:

  • Вместо этого используйте ACL, если они поддерживаются. Таким образом, вы можете дать, например. в wwww-data групповые отдельные разрешения.
  • Если это не сработает, вы должны попытаться предотвратить требование доступа к домашнему каталогу:
    • Вместо классического ~/.forward, возможно, попробуйте использовать ситовую фильтрацию или другие методы доставки.
    • Что касается WWW, вы можете изменить конфигурацию веб-сервера, чтобы использовать альтернативный каталог, где хранятся все пользовательские веб-каталоги, а затем создать на него символическую ссылку из реального домашнего каталога. Это если вы действительно хотеть ~/username веб-сайты, которые в наши дни я стараюсь везде отключать.