GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Mengubah Izin Default /var/log/messages di CentOS/RHEL

Secara default, /var/log/messages* dibuat dengan izin baca-tulis hanya untuk pengguna 'root'. Mungkin ada persyaratan untuk membuat dunia file log dapat dibaca misalnya untuk mengizinkan aplikasi membaca dan memproses data di dalamnya. Mengubah izin pada file tersebut menggunakan 'chmod' mungkin merupakan solusi sementara karena akan dibuat ulang dengan izin asli selama tugas cron logrotate berikutnya. Postingan ini akan membantu memahami cara menyetel izin khusus (misalnya 644) pada /var/log/messages secara permanen.

Untuk CentOS/RHEL 4 dan 5 (menggunakan syslogd)

1. “buat xxxx ” direktif di /etc/logrotate.d/syslog file config mengontrol izin file log yang dikelola oleh daemon syslogd.

2. Contoh di bawah ini menunjukkan cara mengubah izin pada /var/log/messages menjadi 644 (dapat dibaca dunia). Karena tujuannya adalah untuk HANYA mengubah izin pada satu file log (misalnya /var/log/messages), kami membuat bagian konfigurasi baru di /etc/logrotate.d/syslog khusus untuk perubahan pada /var/log/messages.

Izin Saat Ini:

# ls -l /var/log/messages
-rw-------. 1 root root 424848 June 22 09:18 /var/log/messages

3. Pertama, Hapus /var/log/messages dari bagian utama di file /etc/logrotate.d/syslog,

# vi /etc/logrotate.d/syslog

 /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {      ### Remove /var/log/messages from main section
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

dan Buat bagian baru untuk /var/log/messages seperti yang ditunjukkan di bawah ini dan tambahkan ke file yang sama.

/var/log/messages {                                                                    ### add /var/log/messages to a sub-section

   sharedscripts
   create 0644                                                                         ### This directive will change the permission on /var/log/messages* to 644
   postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript

}
Catatan :syslogd tidak akan secara otomatis mengubah izin pada file apa pun yang sudah ada. Salin atau pindahkan file asli dan paksa rotasi langsung agar perubahan diterapkan.

4. Putar syslog secara manual untuk melihat perubahan izin.

# logrotate --force /etc/logrotate.d/syslog
# ls -l /var/log/messages
-rw-r--r--. 1 root root 231 June 22 09:19 /var/log/messages

Semua file log berikutnya akan dibuat dengan izin '644'.

Untuk CentOS/RHEL 6 dan 7 (menggunakan rsyslogd versi>3)

$FileCreateMode direktif dan $umask direktif di /etc/rsyslog.conf file konfigurasi memungkinkan untuk menentukan mode pembuatan yang digunakan rsyslogd untuk membuat file baru. Secara default direktif $FileCreateMode dikompilasi sebagai 0644, yang idealnya harus membuat file yang dikelola oleh rsyslog dengan izin 644, tetapi karena izin sebenarnya bergantung pada umask proses rsyslogd, semua file dibuat dengan 600 izin. Untuk mengatasinya, edit /etc/rsyslog.conf dan tambahkan “$umask 0000” tepat di awal file yang perlu dimodifikasi.

Contoh di bawah ini menunjukkan cara mengubah izin pada /var/log/messages menjadi 644 (dapat dibaca dunia)

1. Periksa izin file /va/log/messages saat ini:

# ls -l /var/log/messages
-rw-------. 1 root root 424848 June 22 09:18 /var/log/messages

2. Edit file konfigurasi /etc/rsyslog.conf dan perintah “$umask 0000” di bagian atas file.

# vi /etc/rsyslog.conf
..
$umask 0000                 ### Add this to reset the umask#
$FileCreateMode 0644        ### This line can be omitted as the compiled in default is already set to 644. Modify this value if you need to set permissions other than 644#
*.info;mail.none;authpriv.none;cron.none /var/log/messages
$umask 0077                 ### Add this to set umask back to default, otherwise all files managed by rsyslogd (/eg /var/log/secure) will be created as world readable (644)
Catatan :rsyslogd tidak akan secara otomatis mengubah izin pada file apa pun yang sudah ada. Anda harus menghapus atau memindahkan file dan memuat ulang rsyslogd agar izin baru dapat diterapkan.

3. Mari pindahkan file /var/log/messages saat ini ke lokasi lain. Ini akan memungkinkan kami untuk membuat file pesan baru dengan izin yang baru kami tentukan.

# mv /var/log/messsages /tmp/

4. Mulai ulang layanan rsyslog untuk menghasilkan file /var/log/messages baru.

# service rsyslog restart        ### CentOS/RHEL 6
# systemctl restart rsyslog      ### CentOS/RHEL 7

5. Periksa izin file lagi.

# ls -l /var/log/messages
-rw-r--r--. 1 root root 231 June 22 09:19 /var/log/messages

Itu saja. Semua file log berikutnya sekarang akan dibuat dengan izin '644'.


Cent OS
  1. Cara mengubah Direktori Log Default (/ var/log) di Rsyslog untuk CentOS/RHEL 6,7

  2. Cara mengubah jalur file log auditd /var/log/audit/audit.log

  3. File Log Sistem /var/log/messages Dihapus atau Dipangkas Secara Otomatis (CentOS/RHEL)

  1. Cara Mengubah Port Default Apache Pada RHEL/CentOS 7

  2. CentOS / RHEL :Cara memutar file /var/log/wtmp dan /var/log/btmp menggunakan logrotate

  3. Log sistem kosong (/var/log/messages; /var/log/secure; dll)

  1. Perbedaan Antara /var/log/messages, /var/log/syslog, Dan /var/log/kern.log?

  2. Bagaimana systemd-tmpfiles membersihkan /tmp/ atau /var/tmp (pengganti tmpwatch) di CentOS / RHEL 7

  3. Cara mengubah izin default pada file /var/log/audit/audit.log di CentOS/RHEL