Linux

Mengatasi Error Logrotate Zimbra “parent directory has insecure permissions”

Di salah satu klien Excellent yang menggunakan Zimbra sebagai sistem email servernya, pernah mengalami kendala dimana konfigurasi logrotate nya tidak berjalan sehingga file zimbra.log dan zimbra-stats.log nya secara terus menerus aktif dan membesar hingga 12 GB karena menyimpan log dari tanggal 29 Oktober 2018 hingga sekarang 14 Februari 2019 dalam satu file tersebut.

root@proxy1:~# ls /var/log/zimbra* -ltrh
-rw-r----- 1 syslog adm    0 Jun 10  2018 /var/log/zimbra.log-2018061007.backup
-rw-r--r-- 1 syslog adm 1.6M Oct 26 07:58 /var/log/zimbra.log.4.gz
-rw-r--r-- 1 syslog adm 1.3M Oct 27 08:03 /var/log/zimbra.log.3.gz
-rw-r--r-- 1 syslog adm 1.6M Oct 28 08:00 /var/log/zimbra.log.2.gz
-rw-r--r-- 1 syslog adm 1.2M Oct 29 07:39 /var/log/zimbra.log.1.gz
-rw-r--r-- 1 syslog adm 1.1G Feb 14 09:48 /var/log/zimbra-stats.log
-rw-r--r-- 1 syslog adm  12G Feb 14 09:48 /var/log/zimbra.log

Ketika dicoba di force untuk rotate menggunakan command logrotate -f /etc/logrotate.d/zimbra, muncul pesan error seperti berikut ini.

error: skipping "/var/log/zimbra.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.
error: skipping "/var/log/zimbra-stats.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.

Untuk pesan error tersebut biasanya karena adanya permission yang tidak aman untuk hak penulisan pada file tersebut, dimana user selain root bisa mengubah file log tersebut.

# Eskalasi

Untuk eskalasinya bisa tambahkan baris su root root untuk memberi tahu logrotate agar menggunakan user/group apa yang digunakan untuk menjalankan rotasi log.

Edit file /etc/logrotate.d/zimbra, kemudian cari section log zimbra.log dan zimbra-stats.log, dan edit menjadi seperti berikut

/var/log/zimbra.log {
    su root root
    daily
    missingok
    notifempty
    create 0644 syslog adm
    postrotate
      /usr/sbin/service rsyslog restart >/dev/null || true
      su - zimbra -c "/opt/zimbra/bin/zmconfigdctl restart" > /dev/null 2>&1 || true
    endscript
    rotate 7
    compress
}

/var/log/zimbra-stats.log {
    su root root
    daily
    missingok
    notifempty
    create 0644 syslog adm
    postrotate
      /usr/sbin/service rsyslog restart >/dev/null || true
      su - zimbra -c "/opt/zimbra/bin/zmconfigdctl restart" > /dev/null 2>&1 || true
    endscript
    rotate 0
}

Simpan file tersebut, lalu jalankan logrotate

/opt/zimbra/libexec/zmsyslogsetup
service rsyslog restart
logrotate -f /etc/logrotate.d/zimbra

Maka secara otomatis file log yang besar tadi akan langsung berotasi dan digantikan oleh file log yang baru, dan setiap malam logrotate juga melakukan rotasi log kembali dengan lancar tanpa ada kendala error yang sebelumnya.

Mungkin cukup sekian, semoga bermanfaat

Share
Published by
Rizky Pratama

Recent Posts

Tips Zimbra : Mengatasi Service Cbpolicyd Starting Failed Setelah Migrasi ke Rocky Linux 8

Beberapa waktu lalu, Excellent mendapatkan project migrasi Zimbra dari versi Open Source Ke Zimbra Network…

1 month ago

Mengatasi Error “no matching host key type found. Their offer: ssh-rsa,ssh-dss” Setelah Upgrade MacOS Ventura Saat Melakukan SSH

Bulan Oktober 2022 lalu, Apple resmi release MacOS terbaru mereka, yaitu MacOS Ventura. Beberapa fitur…

1 year ago

Cara Memindahkan Saham ke Sekuritas Lain

Tidak terasa sudah cukup lama saya tidak update tulisan pada blog ini lagi, akhirnya kali…

2 years ago

Tahun Baru, Markas Baru, Tulisan Baru

Tahun baru 2022 telah tiba, tidak terasa waktu berjalan begitu cepat, banyak cerita dan kenangan…

2 years ago

Mengatasi “Error while performing update: Input/output error (5)” Saat Update Tuxera pada MacOS

Kembali lagi bersama saya, setelah beberapa lama tidak update tulisan pada blog ini :D kali…

2 years ago

Konfigurasi PPTP Client pada Container Docker CLI

PPTP adalah kependekan dari Point-toPoint Tunneling Protocol yang merupakan bahasa yang membuat komputer dapat berkomunikasi…

3 years ago