Điểm:0

procmail - quyền đối với tệp?

lá cờ br

Ubuntu 18.04, đang chạy postfix và procmail Tôi có .procmailrc và .forward và tất cả những thứ đó. Tôi đã định cấu hình procmail để đăng nhập vào một tệp cụ thể và cách duy nhất tôi có thể làm cho nó hoạt động là đặt tệp đó ở chế độ có thể đọc và ghi trên thế giới. Rõ ràng điều này là không tốt. Làm cách nào để xác định procmail của tài khoản người dùng nào đang sử dụng để truy cập các tệp để tôi có thể khóa nó đối với tài khoản đó? (root:root và 644 không hoạt động....)

Tôi gặp vấn đề tương tự với một tệp được viết bởi tập lệnh python gọi công thức procmail - cách duy nhất để làm cho nó hoạt động cho đến nay là tạo tệp 777. Một lần nữa, tôi không biết cách tìm ra tài khoản nào đang cố truy cập tệp này khi tập lệnh python chạy.

ETA: .procmailrc như sau:

# Đặt thành có khi gỡ lỗi
ĐỘNG TỪ = có

# INBOX mặc định
INBOX=$MAIL

# Thư mục lưu trữ các tệp liên quan đến procmail
PMDIR=$HOME/procmail

# Bỏ ghi chú dòng sau để ghi nhật ký
LOGFILE=/var/log/procmail/pmlog

:0wc:
| /usr/bin/python /home/[MyUsername]/scripts/mailproc.py

mailproc.py là một tập lệnh python đơn giản xử lý hậu kỳ email cho một mục đích cụ thể. Tôi đã thêm lệnh gọi "whoami" trong tệp py và phát hiện ra rằng py đang chạy dưới quyền của người dùng sở hữu tệp procmailrc.

Nhưng tôi vẫn không thể tìm ra ai nên sở hữu tệp nhật ký procmail. Có root:root và 644 sẽ không hoạt động.

tripleee avatar
lá cờ nz
Procmail sắp hết `.forward` của bạn chỉ nên chạy với quyền của riêng bạn (mặc dù vậy, `.forward` cũng không cần thiết nếu Postfix được định cấu hình để sử dụng Procmail làm LDA của bạn, vì tôi tin rằng nó sẽ sẵn sàng ). Bạn có thể vui lòng [chỉnh sửa] để làm rõ chính xác vị trí và cách thức bạn đang cố chạy Procmail cũng như cách bạn đang cố ghi vào tệp này không?
tripleee avatar
lá cờ nz
Nói chung. Procmail do `root` chạy bắt đầu bằng `root` và đọc `/etc/procmailrc` cho đến khi gặp câu lệnh `DROPPRIVS=yes` hoặc phần cuối của tệp, sau đó chuyển sang tài khoản của người dùng gửi và đọc (phần còn lại của ` /etc/procmailrc` nếu có `DROPPRIVS`, và sau đó) `.procmailrc` của họ nếu nó tồn tại, sau đó nếu nó không tồn tại hoặc Procmail rơi ra khỏi phần cuối của nó mà không gửi thư, hãy gửi tới `$ MẶC ĐỊNH`. Bạn có thể hạn chế hơn nữa các quyền mà nó sử dụng khi tạo tệp bằng cách đặt `UMASK`, giống như lệnh shell `umask`. Đây là tất cả tài liệu trong trang người đàn ông.
tripleee avatar
lá cờ nz
Bên cạnh đó, cờ `c` trên công thức Python của bạn có vẻ sai. Hay bạn thực sự muốn gửi tới hộp thư `$DEFAULT` _cũng như_ tập lệnh Python của mình? Dấu hai chấm cũng sai; bạn phải bỏ khóa hoặc chỉ định một tệp khóa rõ ràng. Xem thêm https://www.iki.fi/era/procmail/mini-faq.html#locking
alabamatoy avatar
lá cờ br
Cảm ơn những nhận xét về công thức - bạn đang khắc phục sự cố mà tôi thậm chí không nhận ra là mình đã mắc phải.
Điểm:0
lá cờ nz

Không có cách nào lành mạnh để người dùng bình thường ghi vào tệp nhật ký của hệ thống.

Những gì bạn có thể làm như một giải pháp thay thế một phần là không đặt NHẬT KÝ ở tất cả. Procmail sẽ vẫn ghi các mục nhật ký vào lỗi tiêu chuẩn và do đó, có lẽ đầu ra đó sẽ được gửi tới tệp nhật ký Postfix (hoặc có lẽ bạn có thể thêm một chuyển hướng rõ ràng đến vị trí đã chỉ định nơi bạn chạy procmail).

Một giải pháp rõ ràng và đơn giản hơn nhiều là để người dùng .procmailrc ghi tệp nhật ký vào thư mục chính của họ, nơi rõ ràng là họ thường xuyên có quyền ghi.

tripleee avatar
lá cờ nz
Trên thực tế, có những công cụ như `logger` cho phép bạn phát một thông báo tới cơ sở ghi nhật ký hệ thống, nhưng bạn không thể kiểm soát trực tiếp liệu nó có được ghi vào tệp hay tệp nào trong trường hợp đó hay không.
tripleee avatar
lá cờ nz
Bạn có cảm thấy một cái gì đó vẫn còn thiếu từ câu trả lời này? Mặt khác, nếu điều này giải quyết được vấn đề của bạn, vui lòng xem xét chấp nhận nó. Nếu bạn thích, bạn có thể đăng câu trả lời của riêng mình và chấp nhận điều đó. Việc chấp nhận câu trả lời sẽ giúp khách truy cập trong tương lai bằng cách đánh dấu sự cố của bạn là đã giải quyết. Xem thêm [help.](/help/someone-answers)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.