Bir kullanıcının bir günlük dosyasına erişimi okumasına izin vermenin en güvenli yolu nedir?


21

/var/log/messagesBaşvurum, kullanıcıya ve gruba ait okuma erişimi gerektiriyor root. /var/log/messagesUygulamamın okuyabilmesi için gerekli minimum maruz kalma seviyesi nedir ?

Şu anda, benim planım, grubun sahipliğini /var/log/messagesyeni bir gruba değiştirmek, ona kök ve uygulama kullanıcımı eklemektir, ancak bu aynı zamanda uygulamaya yazma ayrıcalıkları da verir /var/log/messages.

İşletim Sistemi: Centos 5.5

Yanıtlar:


7

Zaten kullanıcı ayrıcalıkları yoluyla erişebileceği için gruba kök eklemenize gerek yok, sadece hangi gruba karar verdiğinizi okumaya başlayın. Değişiklikleri de logrotate ile yapmayı unutmayın, aksi takdirde grup değişiklikleri her gece silinir.


Logrotate scriptleri nerede bulunur?
gAMBOOKa

1
/etc/logrotate.d/, ayrılan logrotate komut dosyalarının klasörüdür. / var / log / messages /etc/logrotate.d/syslog konumunda. / Var / log / mesajları /etc/logrotate.conf içindeki kendi dosyasına taşımanız ve ardından 'create 0640 root new_group oluştur' gibi bir şey kullanarak dosyayı düzgün bir şekilde oluşturmasını söyleyin.
rfelsburg

/ Var / log / mesajları /etc/logrotate.d/
Massimo

17

Sadece yukarıdaki cevapları biraz genişletmek için burada gerçek bir dünya kullanım örneği var. Splunk kurumsal log analiz uygulamasını Redhat kutusunda çalıştırıyorum. Bölünmüş kullanıcı ve bölme grubunun altında çalışır. Bu, / var / log içindeki log'lara yalnızca root (veya sudo admin) tarafından erişilebildiğinden erişimini engeller.

Sadece ayrık okumaya izin vermek için sadece bazı ACL'leri kullandım ve devam ettirmek için değiştirilmiş logrotate kullandım.

ACL'yi manuel olarak ayarlayabilirsiniz.

sudo setfacl -m g:splunk:rx /var/log/messages

Bu, logrotate'in ACL ayarını tekrar uygulamayacağından kalıcı olmayacaktır, bu yüzden daha kalıcı bir çözüm için ACL'yi sıfırlamak için logrotate için bir kural ekledim. Dosyayı ekledim ..

/etc/logrotate.d/Splunk_ACLs

ile

{
    postrotate
        /usr/bin/setfacl -m g:splunk:rx /var/log/cron
        /usr/bin/setfacl -m g:splunk:rx /var/log/maillog
        /usr/bin/setfacl -m g:splunk:rx /var/log/messages
        /usr/bin/setfacl -m g:splunk:rx /var/log/secure
        /usr/bin/setfacl -m g:splunk:rx /var/log/spooler
    endscript
}

İle bir dosyanın ACL durumunu kontrol et

$ getfacl /var/log/messages

ACL'ler hakkında daha fazla bilgi için bkz. Https://help.ubuntu.com/community/FilePermissionsACLs http://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/


Ayrıca Splunk gönderilen cevaplar answers.splunk.com/answers/4253/...
nick fox

1
Ayırmanın günlük dosyalarında yürütme izni gerektirmediğini unutmayın, sadece okuyun.
rojs

@ nickfox /etc/logrotate.d/Splunk_ACLsOrada yayınladığınız içeriğin tamamı bu mu? Aslında postrotate bitini işlemek için logrotate için herhangi bir yol belirtmeniz gerekmez mi?
Dale Anderson

hmmm Sanmıyorum. Sistem günlükleri için mevcut logrotate yapılandırmalarını değiştirmek istemedim ve onlarınkileri de değiştirmek istemedim. Bu şekilde ayrılma için özel değişiklik bağımsız olarak var olur. Bir paket veya kukla vb. İle /app.d/ dizinlerinin ne işe yaradığını konuşmanıza izin vermek. Elbette yanılıyor olabilirim, bunu yaptığımdan bu yana bir yıl geçti
Nick Fox

1
Sadece (ziyade x değerinden sermaye X gibi) X'in seçeneğini kullanırsanız zaten dosya bir dizin durumlarda çalıştır eklemek veya edeceğini düşündüren bir not bazı kullanıcı için çalıştırma izni vardır
steoleary

5

Planın kabul edilebilir ve "geleneksel" Unix izinleri planında, gitmenin en iyi yolu bu.
Diğer bir seçenek ise, syslog'un ilgilenilen mesajları başka bir dosyaya yönlendirmesidir (bu, uygulama kullanıcısına içinde olabilecek hassas herhangi bir şeye erişmesini engeller /var/log/messages).

Kullanıcı / Grup / Diğer’in geleneksel izinler şemasına bağlı kalmak istemiyorsanız, uygulamanızın kullanıcılarına salt okunur erişimi sağlamak için POSIX ACL'leri de (Google’da bulabileceğiniz daha iyi, muhtemelen daha iyi bilgi / bilgi) kullanabilirsiniz /var/log/messages- bu biraz daha ince tanelidir ve yanlışlıkla yanlışlıkla birisini uygulamanın grubuna sokma ve görmemesi gereken şeylere erişme riski yoktur.


2

Yip Bunu bir müşterinin dosyasına setfaclerişmek için yaptım , günlükler döndürüldükten sonra ACL'yi yeniden ayarlamak için dosyaya mail.logbir komut eklemeniz de gerekmeyecek.logrotate.conf

postrotate
         /usr/bin/setfacl -m o::r /var/log/mail.log  
endscript

Not Sadece bunu yeni kurdum ve test etmedim, fakat buraya geri gönderilmesine rağmen, neden işe yaramayacağını görebiliyorsanız, yanlış olduğumda biri beni düzeltir.


0

Bunun için ACL kullanabilirsiniz . Belirli kullanıcılar ve dosyalar için belirli ek erişim kuralları belirlemenizi sağlar.


-1

ACL'nizi başkalarının söylediği gibi yapılandırdığınızda, tüm acl kurallarınızı postrotate yapılandırmasına koymak yerine, her seferinde yeni bir günlük dosyası oluşturmak yerine copytruncate kullanmak için logrotate yazabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.