Я пишу скрипт python, который должен делать запись в журнале всякий раз, когда он вызывается. Журнал, созданный сценарием, не может быть изменен пользователем (кроме root), который вызывал скрипт. Я пробовал модуль syslog, и, хотя это делает именно то, что я хочу с точки зрения прав доступа к файлам, мне нужно уложить полученный файл журнала в произвольное место. Как мне это сделать?Создание журналов только для чтения с помощью python
ответ
Запустите свой скрипт с помощью setuid root.
Наличие скрипта setuid root, чтобы сделать запись в журнале, определенно НЕ является хорошей идеей. – mgv
Я считаю, что это заставило меня начать в правильном направлении. Как я понимаю, создание двоичного файла оболочки C для скрипта, а затем setuid root на нем более безопасно, не так ли? – Travis
никогда. Когда-либо. скрипты setuid. – hop
Я вижу, что вы на Linux,
В зависимости от файловой системы вы используете, вы можете быть в состоянии использовать команду chattr
. Вы можете создавать файлы, которые добавляются только путем установки атрибута a
'man syslog.conf' –