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

Разрешения по умолчанию для папок courier imap

Я использую курьерский imap. Когда почтовый клиент создает новую папку, она создается в файловой системе с разрешением 640. Мне нужно, чтобы он был доступен для записи группой, или 660. В настоящее время у меня есть / etc / courier / imapd IMAP_UMASK = 007, но этого недостаточно.

Я не знаю, что еще попробовать. Любые идеи? Я использую сервер Ubuntu 12.04.


РЕДАКТИРОВАТЬ: Я добавил к этому награду в размере 50 пунктов. Для приемлемого ответа мне нужен способ заставить его работать из пакета в стандартном репо. Если я скачу исходный код и скомпилирую его сам, он не будет автоматически обновляться с исправлениями безопасности.

Если я не найду лучшего ответа, я добавлю код в сценарий администратора для вызова другого сценария, одобренного sudo, для chmod -R всего каталога перед каждым изменением. Но это вроде взлома.

Что ж, этот материал ниже не будет работать с почтовым сервером, но если в любом случае вы можете распространить разрешение папки по умолчанию с помощью следующего метода setfacl, показанного ниже.

В любом случае вы хотите изменить способ работы fopen, я бы использовал для него ld-preload и сделал fopen с 660 вместо 600. Функция, которую нужно перенять, будет, например, umask, chown, mkdir, открыть.

umask(0)                                = 077
mkdir("/home/test/Maildir/.INBOX.test", 0700) = 0
chown("/home/test/Maildir/.INBOX.test", 4294967295, 4294967295) = 0
open("/home/test/Maildir/.INBOX.test/maildirfolder", O_WRONLY|O_CREAT, 0600) = 15
mkdir("/home/test/Maildir/.INBOX.test/cur", 0700) = 0

Возможно, вы захотите использовать setfacl и getfacl. setfacl -m d: g :: rw aaa устанавливает разрешение по умолчанию для папки (так что это похоже на унаследованное), что группа (группа по умолчанию, которая не указана здесь между двумя :) будет иметь права на чтение и запись.

[test@test ~]$ setfacl -m d:g::rwx aaa
[test@test ~]$ getfacl aaa
# file: aaa
# owner: test
# group: test
user::rwx
group::---
other::---
default:user::rwx
default:group::rwx
default:other::---

[test@test~]$ mkdir aaa/zzz
[test@test ~]$ getfacl aaa/zzz
# file: aaa/zzz
# owner: test
# group: test
user::rwx
group::rwx
other::---
default:user::rwx
default:group::rwx
default:other::---

[test@test ~]$ ls -l aaa
total 4
drwxrwx---+ 2 test test 4096 Jun 30 12:22 zzz
[test@test ~]$ umask
0077
[test@test ~]$