Lý lịch
Tôi đã thiết lập một máy chủ postfix ví dụ bằng cách sử dụng sqlite để lưu trữ các bí danh và chi tiết hộp thư, (để chúng có thể được cập nhật trực tiếp và có một nguồn sự thật duy nhất là cơ sở dữ liệu.)
Tôi có các phần của postfix đang chạy chroot nếu có thể để bảo mật, vì vậy cơ sở dữ liệu (mail.sqlite) nằm trong /var/lib/postfix/
(Tất cả đều hoạt động.)
Các chức năng cần thiết
Tôi đã viết giao diện người dùng web để cho phép người dùng thêm địa chỉ email mới. Giao diện người dùng web đang chạy dưới dạng dữ liệu www.
Tôi đã thêm dữ liệu www vào nhóm postfix để chmod g+rw /var/lib/postfix/mail.sqlite /var/lib/postfix/
sẽ cho phép giao diện người dùng web cập nhật cơ sở dữ liệu.
Email đang chảy vào và ra. Giao diện người dùng web có thể Tạo Cập nhật từ xa Xóa bí danh. Tôi khởi động lại postfix và kiểm tra nhật ký:
postfix/postfix-script[26524]: cảnh báo: nhóm hoặc có thể ghi khác: /var/lib/postfix/.
postfix/postfix-script[26525]: cảnh báo: nhóm hoặc có thể ghi khác: /var/lib/postfix/./mail.sqlite
Nếu tôi chmod g-w /var/lib/postfix/mail.sqlite
điều đó làm cho hậu tố hài lòng, nhưng đã loại bỏ khả năng giao diện người dùng web của tôi thêm bí danh mới.
Tôi có thể có một tập lệnh cron để thay thế /var/lib/postfix/mail.sqlite bằng một /var/www/admin/app/mail.sqlite có thẩm quyền, nhưng điều đó có mùi giống như điều kiện chủng tộc,
hoặc ít nhất là không thanh lịch.
(Tôi thắc mắc tại sao postfix lại đề cập đến cơ sở dữ liệu là "/var/lib/postfix/./mail.sqlite" khi cấu hình là dbpath = /var/lib/postfix/mail.sqlite
?)
Câu hỏi
Làm cách nào tôi có thể cấp quyền truy cập ghi vào giao diện người dùng web cgi của mình vào cơ sở dữ liệu của postfix mà không cần chạy nó như hậu tố và trong khi giữ postfix hạnh phúc? (Tôi nghĩ rằng tôi phải giải quyết vấn đề này trước khi thêm vào các chính sách của SELinux.)
Chỉnh sửa:
Tôi đã có main.cf với
virtual_mailbox_maps = sqlite:/etc/postfix/sqlite_mailbox.cf
virtual_alias_maps = sqlite:/etc/postfix/sqlite_alias.cf
virtual_mailbox_domains = sqlite:/etc/postfix/sqlite_domains.cf
và đã thử proxymap:
virtual_mailbox_maps = proxy:sqlite:/etc/postfix/sqlite_mailbox.cf
virtual_alias_maps = proxy:sqlite:/etc/postfix/sqlite_alias.cf
virtual_mailbox_domains = proxy:sqlite:/etc/postfix/sqlite_domains.cf
Cả hai dường như hoạt động tốt như nhau để xử lý email, nhưng sau khi khởi động lại postfix, cả hai vẫn đăng nhập:
postfix/postfix-script[957]: cảnh báo: nhóm hoặc có thể ghi khác: /var/lib/postfix/.
postfix/postfix-script[958]: cảnh báo: nhóm hoặc có thể ghi khác: /var/lib/postfix/./mail.sqlite