Linux: Làm cách nào để thực thi các quyền cụ thể đối với các bản ghi mới được tạo bằng cách xoay vòng nhật ký?


15

Tôi đã nhận thấy rằng nhật ký thư đang được tạo /var/logđang được tạo và sở hữu bởi root (người dùng và nhóm). Tôi đã viết một kiểm tra Nagios theo dõi nhật ký và để cho phép người dùng Nagios truy cập vào nó, tôi đã cấp cho othernhóm quyền đọc, đó là:

chmod o+r /var/log/maillog

Bây giờ khi tôi nghĩ về nó, đây chỉ là một tệp nhật ký, khi tệp nhật ký sẽ được điền, cơ chế xoay vòng nhật ký sẽ đổi tên tệp này và mở tệp mới, nhưng maillogtệp mới sẽ không có tệp read writetôi cho phép.

Vì vậy, câu hỏi của tôi là, làm thế nào tôi có thể chắc chắn rằng cơ chế xoay vòng nhật ký sẽ tạo ra tất cả các tệp mailllog mới với quyền phù hợp cho người dùng Nagios?

Cảm ơn trước

Câu trả lời:


21

logrotatecreatetùy chọn:

create mode owner group

Ngay sau khi xoay (trước khi tập lệnh postrotate được chạy), tệp nhật ký được tạo (có cùng tên với tệp nhật ký vừa được xoay). modechỉ định chế độ cho tệp nhật ký theo bát phân (giống như chmod (2)), chủ sở hữu chỉ định tên người dùng sẽ sở hữu tệp nhật ký và nhóm chỉ định nhóm tệp nhật ký sẽ thuộc về. Bất kỳ thuộc tính tệp nhật ký nào cũng có thể bị bỏ qua, trong trường hợp đó, các thuộc tính đó cho tệp mới sẽ sử dụng cùng các giá trị như tệp nhật ký gốc cho các thuộc tính bị bỏ qua. Tùy chọn này có thể được vô hiệu hóa bằng cách sử dụng tùy chọn nocreate.

Thêm thông tin với man logrotate.

Sử dụng nó như vậy:

/var/log/maillog {
....
        create 664 user group
....
}

trong /etc/logrotate.confhoặc một tệp riêng biệt trong /etc/logrotate.dvà kiểm tra xem không có tệp nào khác ghi đè lên tệp này. Cách cấu hình này tùy thuộc vào HĐH của bạn (ví dụ trên Ubuntu, điều này được xử lý trong rsyslogcấu hình).


Làm cách nào tôi có thể định cấu hình rằng chỉ /var/log/maillogcác tệp nhật ký trong tương lai sẽ được tạo với quyền người dùng mong muốn mà không thay đổi bất kỳ cài đặt mặc định nào đã được áp dụng cho maillog?
Itai Ganot

Xem chỉnh sửa của tôi và đọc man logrotate(và xem xét /etc/logrotate.conf/etc/logrotate.dcho rất nhiều ví dụ).
Sven

2
@ItaiGanot Bạn cũng nên sửa cấu hình syslog của mình để nó tạo tệp với sự cho phép phù hợp, thay vì bạn thực hiện một chmod ban đầu.
Jenny D

@JennyD, Cảm ơn, điều đó có nghĩa là tôi nên xóa /var/log/maillogdòng khỏi /etc/logrotate.d/syslogđể cài đặt /etc/logrotate.confsẽ diễn ra?
Itai Ganot

2
@ItaiGanot Không! Điều đó có nghĩa là bạn nên tìm hiểu chương trình nhật ký hệ thống nào bạn đang sử dụng (có thể syslog-nghoặc rsyslog) và thay đổi cấu hình của nó. Điều này là cần thiết bởi vì khi hệ thống của bạn được khởi động lại hoặc chương trình nhật ký hệ thống của bạn được khởi động lại vì một số lý do khác, nó có thể tạo lại tệp với sự cho phép sai.
Jenny D
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.