postmap: fatal: mở cơ sở dữ liệu /etc/postfix/sasl_passwd.db: Quyền bị từ chối


9

Tôi đang cấu hình Postfix để sử dụng smtp bên ngoài. Đối với điều này, tôi đã sử dụng hướng dẫn này

Sau khi theo dõi nó, tôi tìm thấy trong nhật ký /etc/postfix/sasl_passwd.dbkhông thể đọc được. Các tập tin đã không tồn tại. Tôi đã sử dụng hàm băm postmap: / etc / postfix / sasl_passwd ( http://postfix.state-of-mind.de/patrick.koetter/smtpauth/smtp_auth_mailservers.html ) làm root, nhưng tôi nhận được:

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

Tại sao tôi có được điều này?

OS: Fedora 14
User "postfix" exists.

Cập nhật:

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 đưa ra lỗi tương tự như trên.

Câu trả lời:


16

Bạn cần đảm bảo rằng người dùng postfix có thể đọc tệp đó. Bạn có thể đăng đầu ra $ sudo ls -l /etc/postfix/sasl_passwd.dbđể nhận thêm trợ giúp.

Để tạo tập tin này, bạn có thể sử dụng lệnh:

$ sudo postmap sasl_passwd

Điều này sẽ tạo ra các .dbtập tin.


OK, tôi đã nhận: sudo ls -l /etc/postfix/sasl_passwd.db ls: không thể truy cập /etc/postfix/sasl_passwd.db: Không có tệp hoặc thư mục nào chạm vào /etc/postfix/sasl_passwd.db chmod /sasl_passwd.db chown postfix: root /etc/postfix/sasl_passwd.db sudo ls -l /etc/postfix/sasl_passwd.db -rwxr - r--. 1 postfix gốc 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 băm postmap: / etc / postfix / sasl_passwd postmap: fatal: không thể xóa tệp cơ sở dữ liệu có độ dài bằng không /etc/postfix/sasl_passwd.db cho giống nhau
James Benders

Vì vậy, các tập tin không tồn tại. Bạn cần tạo nó hoặc tìm đúng.
Khaled

Cảm ơn câu trả lời của bạn, tôi đã cập nhật câu trả lời của tôi. Xin vui lòng xem nó ở trên.
James Benders

Điều này không rõ ràng. Xin vui lòng, thay đổi câu hỏi của bạn thay vào đó! Bạn đã tạo tập tin bằng cách sử dụng touch? Điều này có thể không phù hợp.
Khaled

OK xong. Có tôi đã sử dụng cảm ứng, làm thế nào tôi nên tạo ra nó?
James Benders

10

Vấn đề này, ít nhất là trên Ubuntu 12.04, là do thư mục / etc / postfix không thuộc sở hữu của người dùng postfix. (như đã suy ra ở trên).

Thông báo lỗi được gây ra bởi vì bạn không nên trực tiếp tạo tệp .db. Nếu bạn đã làm, xóa nó.

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

Cách khắc phục đơn giản cho vấn đề ban đầu là:

sudo chown postfix /etc/postfix

Sau đó, bạn có thể chạy nó

sudo postmap sasl_passwd

Trường hợp được giả sử mật khẩu văn bản rõ ràng của bạn nằm trong tệp sasl_passwd


1
Xác nhận vẫn là một vấn đề @ 14.04
tamouse

và trong 16.04
lts

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.