postmap: fatal: banco de dados aberto /etc/postfix/sasl_passwd.db: permissão negada

9

Estou configurando o Postfix para usar smtp externo. Para isso, usei este tutorial

Depois de segui-lo, encontrei nos logs que /etc/postfix/sasl_passwd.dbnão puderam ser lidos. O arquivo não existia. Eu usei o hash do postmap: / etc / postfix / sasl_passwd ( http://postfix.state-of-mind.de/patrick.koetter/smtpauth/smtp_auth_mailservers.html ) como raiz, mas recebo:

postmap: fatal: open database /etc/postfix/sasl_passwd.db: Permission denied

Por que eu recebo isso?

OS: Fedora 14
User "postfix" exists.

Atualizar:

sudo ls -l /etc/postfix/sasl_passwd.db ls:

cannot access /etc/postfix/sasl_passwd.db: No such file or directory

touch /etc/postfix/sasl_passwd.db
chmod 640 /etc/postfix/sasl_passwd.db
chown postfix:root /etc/postfix/sasl_passwd.db

sudo ls -l /etc/postfix/sasl_passwd.db

-rwxr--r--. 1 postfix root 0 Feb 19 04:16 /etc/postfix/sasl_passwd.db
-rw-r-----. 1 postfix root 0 Feb 19 04:16 /etc/postfix/sasl_passwd.db

postmap hash:/etc/postfix/sasl_passwd

postmap: fatal: cannot remove zero-length database file /etc/postfix/sasl_passwd.db: Permission denied.

chmod 777 dá o mesmo erro que acima.

James Benders
fonte

Respostas:

16

Você precisa garantir que o usuário do postfix possa ler esse arquivo. Você pode postar a saída de $ sudo ls -l /etc/postfix/sasl_passwd.dbpara obter mais ajuda.

Para criar este arquivo, você pode usar o comando:

$ sudo postmap sasl_passwd

Isso criará o .dbarquivo.

Khaled
fonte
OK, obtive: sudo ls -l /etc/postfix/sasl_passwd.db ls: não é possível acessar o /etc/postfix/sasl_passwd.db: nenhum arquivo ou diretório é tocado em /etc/postfix/sasl_passwd.db chmod 640 / etc / postfix /sasl_passwd.db chumbo postfix: root /etc/postfix/sasl_passwd.db sudo ls -l /etc/postfix/sasl_passwd.db -rwxr - r--. 1 raiz do postfix 0 19 de fev 04:16 /etc/postfix/sasl_passwd.db -rw-r -----. 1 raiz do postfix 0 19 de fev 04:16 /etc/postfix/sasl_passwd.db hash do postmap: / etc / postfix / sasl_passwd postmap: fatal: não é possível remover o arquivo de banco de dados de comprimento zero /etc/postfix/sasl_passwd.db: permissão negada chmod 777 dá o mesmo.
James Benders
Portanto, o arquivo não existe. Você precisa criá-lo ou encontrar o correto.
Khaled
Obrigado pela sua resposta, atualizei minha resposta. Por favor, veja acima.
James Benders
Isso não está claro. Por favor, edite sua pergunta! Você criou o arquivo usando touch? Isso pode não ser apropriado.
Khaled
Feito. Sim, eu usei o toque, como devo criá-lo de outra forma?
James Benders
10

Esse problema, pelo menos no Ubuntu 12.04, é causado pelo fato da pasta / etc / postfix não pertencer ao usuário do postfix. (como inferido acima).

A mensagem de erro é causada porque você não deve criar diretamente o arquivo .db. Se você fez, exclua-o.

postmap: fatal: cannot remove zero-length database file /etc/postfix/sasl_passwd.db: Permission denied.

A correção simples para o problema original é:

sudo chown postfix /etc/postfix

Depois disso, você pode executar este

sudo postmap sasl_passwd

Onde é assumido que suas senhas de texto não criptografado estão no arquivo sasl_passwd

Tom Carchrae
fonte
1
Confirmado ainda um problema @ 14.04
tamouse
e em 16.04 lts
oligofren 8/18
0

Mude o proprietário

raiz do chown: wheel policy_file

Trabalho sintético
fonte