Dodałem użytkownika logstash
do grupy adm
za pomocą polecenia $ usermod -a -G adm logstash
.
Jednym z plików, które agent logstash próbuje odczytać, jest ten /var/log/nginx/foo-access.log
, który ma następujące uprawnienia:
-rw-r----- 1 www-data adm 0 Jul 25 07:52 /var/log/nginx/foo-access.log
Kiedy mogę sudo su logstash
odczytać plik, ALE, kiedy ja $ sudo service logstash_agent restart
(który skrypt startowy uruchamia się jako logstash
użytkownik), zapełnia dzienniki logstash:
{:timestamp=>"2013-07-31T17:05:17.287000+0000", :message=>"failed to open /var/log/nginx/foo-access.log: Permission denied - /var/log/nginx/foo-access.log", :level=>:warn}
Mogę potwierdzić, że użytkownik logstash jest w grupie adm:
$ groups logstash
logstash : logstash adm
Ten plik zdecydowanie ma odpowiedni dostęp do pliku:
$ getfacl /var/log/nginx/foo-access.log
getfacl: Removing leading '/' from absolute path names
# file: var/log/nginx/foo-access.log
# owner: www-data
# group: adm
user::rw-
group::r--
other::---
Próbowałem go wyłączyć i włączyć ponownie.
ubuntu
permissions
ubuntu-12.10
logstash
Phil Sturgeon
źródło
źródło
/var/log/nginx
)Odpowiedzi:
Okazało się, że jest związany z tym błędem na początku:
https://bugs.launchpad.net/upstart/+bug/812870
Ponieważ
adm
była to grupa drugorzędna, nie zastosowano jej do procesu, który jest zepsuty jako pieprzenie i najwyraźniej został naprawiony w późniejszej wersji.Moim rozwiązaniem było dodanie
setguid adm
do pliku init.źródło
Oto działające obejście:
modyfikować
przez
następnie
źródło