LINUX.ORG.RU

incrond

 , ,


0

3

Почему-то incrond плюёт на все настройки в /etc/security/limits* и все лимиты умолчательные. Куда поковыряться в pam? Пробовал скопировать /etc/pam.d/crond в /etc/pam.d/incrond - не помогает.

Deleted
Ответ на: комментарий от anonymous

В том, что у меня для нужного пользователя прописаны увеличенные лимиты, например, nofile 65536, однако из скрипта, запущенного под incrond ulimit -a показывает open files 1024 и на попытку сделать ulimit -n 65536 говорит Operation not permitted. Если проверять из консоли - то всё нормально.

Deleted
()

Пробовал скопировать /etc/pam.d/crond в /etc/pam.d/incrond

Это бессмысленно, поскольку incron не поддерживает PAM в принципе.

Homura_Akemi
()
Ответ на: комментарий от Deleted

Может, установить глобальные лимиты для пользователя или группы incron? Но, если честно, я не знаю, будут ли они наследоваться, да и если будут, это выглядит не совсем правильно.

Homura_Akemi
()
Ответ на: комментарий от Homura_Akemi

А у него нет группы, он тупо выполняет правила под пользователем, из-под которого отредактировал incrontab, аналогично cron'у.

Ладно, буду колхозить по старинке с флаговыми файлами и выполнением раз в минуту скрипта :(

Deleted
()
Ответ на: комментарий от Deleted

А у него нет группы, он тупо выполняет правила под пользователем, из-под которого отредактировал incrontab, аналогично cron'у.

Кажется, вы не совсем поняли мысль. Демон incrond выполняется (по крайней мере, у меня) с правами пользователя и группы incron. В limits.conf пишем

incron    hard    nofile    65535
После этого программа, выполняемая из incrontab, может поднять себе лимит до 65535. Безопасность здесь обеспечивается, очевидно, тем, что не каждый пользователь имеет право использовать incron (/etc/incron.allow).

У меня это сработало.

Homura_Akemi
()
Ответ на: комментарий от Homura_Akemi

Я понял мысль, спасибо. В rh incrond почему-то запускается из-под рута, сейчас буду переводить на запуск от юзера.

Deleted
()
Ответ на: комментарий от Deleted

Нет.

% ls -l /usr/sbin/incrond 
-rwxr-xr-x 1 root root 112K Apr  9 03:14 /usr/sbin/incrond
Но, как оказалось, запускается и работает он всё же под рутом. При этом ограничен лимитами обычных пользователей. Похоже, группа incron актуальна только для
% ls -l /usr/bin/incrontab 
-rwxr-sr-x 1 root incron 92K Apr  9 03:14 /usr/bin/incrontab
Тем не менее, предложенный способ работает. Почему-то.

Homura_Akemi
()
Ответ на: комментарий от Homura_Akemi

Скачал исходник пакета, расставил права и лимиты, программа, выполняемая из incrontab, говорит на ulimit -n 65535 «ulimit: open files: cannot modify limit: Operation not permitted».

Deleted
()
Ответ на: комментарий от Homura_Akemi

Кстати,

incron    hard    nofile    65535
- некорректная запись, ибо пользователя incron нет, есть только группа, а группу туда писать надо как @incron.

Deleted
()
Ответ на: комментарий от Deleted

Затрудняюсь это прокомментировать, но факт остаётся фактом: у меня команда из incrontab выполняется с правами пользователя, который делал incrontab -e

[pid 166110] setgroups(13, [1000, 4, 8, 20, 24, 25, 29, 30, 44, 46, 50, 111, 666]) = 0
[pid 166110] setuid(1000)               = 0
[pid 166110] execve("/home/anon/test.sh", ["/home/anon/test.sh"], [/* 6 vars */]) = 0
но security-лимитами пользователя incron. Только вот какая незадача, пользователя incron в системе нет(!). А если задать лимиты для реально существующей группы incron, то скрипт не сможет повысить порог. Похоже, что это какой-то странный баг. Только не совсем понятно где.

Homura_Akemi
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.