Я добавил пользователя logstash
в группу adm
с помощью команды $ usermod -a -G adm logstash
.
Один из файлов, который пытается прочитать агент logstash /var/log/nginx/foo-access.log
, имеет следующие разрешения:
-rw-r----- 1 www-data adm 0 Jul 25 07:52 /var/log/nginx/foo-access.log
Когда я sudo su logstash
могу прочитать файл, НО, когда я $ sudo service logstash_agent restart
(который сценарий инициализации запускается как logstash
пользователь) заполняет журналы 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}
Я могу подтвердить, что пользователь logstash находится в группе adm:
$ groups logstash
logstash : logstash adm
Этот файл определенно имеет право доступа к файлу:
$ 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::---
Я пытался выключить и снова включить.
ubuntu
permissions
ubuntu-12.10
logstash
Фил Осетрина
источник
источник
/var/log/nginx
)Ответы:
Оказалось, что это связано с этой ошибкой в upstart:
https://bugs.launchpad.net/upstart/+bug/812870
Поскольку это
adm
была вторичная группа, она не применялась к процессу, который нарушается как f ** k и, по-видимому, исправлен в более поздней версии.Мое решение было добавить
setguid adm
в файл инициализации.источник
Вот рабочий способ:
Modify
по
затем
источник