Мне нужно ограничить права доступа к каталогам пользователей в /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 вы столкнетесь с проблемами. Что вы можете попробовать:
wwww-data
групповые отдельные разрешения. ~/.forward
, возможно, попробуйте использовать ситовую фильтрацию или другие методы доставки. ~/username
веб-сайты, которые в наши дни я стараюсь везде отключать.