Řešení 1:
Abychom trochu rozšířili výše uvedené odpovědi, zde je skutečný případ použití. Spouštím aplikaci pro analýzu podnikových protokolů Splunk na krabici Redhat. Běží pod splunk user a splunk group. To zabrání splunk v přístupu k protokolům v /var/log, protože jsou přístupné pouze root (nebo sudo admin)
Abych povolil přístup pouze pro čtení pouze pro splunk, použil jsem několik ACL a upravil logrotate, abych to zachoval.
ACL můžete nastavit ručně pomocí
sudo setfacl -m g:splunk:rx /var/log/messages
Toto nebude přetrvávat, protože logrotate znovu nepoužije nastavení ACL, takže pro trvalejší řešení jsem přidal pravidlo pro logrotate pro resetování ACL.Přidal jsem soubor..
/etc/logrotate.d/Splunk_ACLs
s
{
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
}
Zkontrolujte stav ACL souboru pomocí
$ getfacl /var/log/messages
Další informace o ACL najdete na https://help.ubuntu.com/community/FilePermissionsACLshttp://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/
Řešení 2:
Není třeba přidávat root do skupiny, protože stejně bude mít přístup přes uživatelská priv, prostě dejte skupině přečíst kteroukoli skupinu, kterou si vyberete. Nezapomeňte provést změny také pomocí logrotate, jinak budou skupinové změny každou noc vymazány.
Řešení 3:
Váš plán je přijatelný a v "tradičním" unixovém schématu oprávnění je tou nejlepší cestou.
Další možností je nechat syslog přesměrovat zprávy, které vás zajímají, do jiného souboru (což zabrání tomu, aby uživatel aplikace měl přístup k čemukoli citlivému, co může být v /var/log/messages
).
Pokud se nechcete vázat tradičním schématem oprávnění User/Group/Other, můžete také použít POSIX ACL (jiné, možná lepší postupy/informace dostupné přes Google), abyste uživateli své aplikace poskytli přístup pouze pro čtení k /var/log/messages
-- toto je o něco jemnější a nehrozí, že by někdo náhodně dostal do skupiny aplikace někoho jiného a poskytl mu přístup k věcem, které by neměly vidět.
Řešení 4:
Ano, použil jsem setfacl
tím umožníte přístup k mail.log
soubor pro zákazníka, nebudete muset také vložit příkaz do logrotate.conf
soubor pro opětovné nastavení ACL poté, co byly protokoly otočeny, např.:
postrotate
/usr/bin/setfacl -m o::r /var/log/mail.log
endscript
Všimněte si, že jsem to právě nastavil a netestoval, ale i když by to sem poslal, nevidím důvod, proč by to nefungovalo, opravte mě někdo, pokud se mýlím.