Permissões padrão para pastas imap de correio

1

Estou usando o correio imap. Quando um cliente de e-mail cria uma nova pasta, ele é criado no sistema de arquivos com a permissão 640. Eu preciso que ele seja gravável pelo grupo, ou 660. Atualmente tenho / etc / courier / imapd IMAP_UMASK = 007, mas isso não é suficiente.

Não sei mais o que tentar. Alguma ideia? Estou usando o servidor Ubuntu 12.04.

EDIT: Eu adicionei uma recompensa 50pt para isso. Para uma resposta aceitável, preciso de uma maneira de fazê-lo funcionar a partir de um pacote em um repositório padrão. Se eu fizer o download do código-fonte e compilá-lo sozinho, ele não será atualizado automaticamente com as correções de segurança.

Se eu não encontrar uma resposta melhor, adicionarei código ao script admin para chamar outro script aprovado pelo sudo para chmod -R em todo o diretório antes de cada alteração. Mas isso é meio hack-ish.

    
por Dwayne 22.06.2012 / 04:47

1 resposta

1

Bem, este material abaixo não funcionará com o servidor de e-mail, mas se, em qualquer caso, você puder propagar a permissão da pasta padrão através do seguinte método setfacl mostrado abaixo.

Em qualquer caso, você quer mudar a maneira como o fopen funciona. Eu usaria o ld-preload nele e faria o fopen com 660 em vez de 600. A função a ser assumida seria, e. umask, chown, mkdir, aberto.

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

Você pode querer usar setfacl e getfacl. setfacl -md: g :: rw aaa configura a permissão padrão na pasta (assim é como herdada), que o grupo (o grupo padrão, que não é especificado aqui entre dois :) teria permissões de leitura e gravação.

[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 ~]$
    
por 30.06.2012 / 14:39