В это время у меня есть некоторые проблемы с правами на чтение файлов (root). Я пытаюсь открыть файл журнала, созданный iptables в моей системе (rsyslogd). Итак, когда я создаю этот файл в /var/log/iptables.log, созданный пользователем root (вместо этого у моего пользователя есть все разрешения, предоставленные конфигурацией sudoers)
Я использую оболочку для открытия файла (Pygtail), но это то же самое, что и функция открытия в python.
for line in Pygtail(self.path_source):
if len(line) > 1:
print "\n Procesando línea --> " + str(line)
self.processLine(line)
Когда я запускаю скрипт, мой терминал показывает мне эту ошибку:
IOError: [Errno 13] Permission denied: '/var/log/iptables.log'
Exception IOError: (13, 'Permission denied', '/var/log/iptables.log') in <bound method Pygtail.__del__ of <pygtail.core.Pygtail object at 0x7f2fb8127350>> ignored
И разрешения iptables.log:
-rw-r----- 1 root adm 0 dic 20 11:27 iptables.log
Я просто хочу открыть файл, прочитать все строки и обработать их в моем скрипте Python. Ничего больше.
Любые идеи? Я увижу некоторые библиотеки в pip, такие как oslo.rootwrap, но я не понимаю это очень хорошо.
sudo
) ? - person rafaelc   schedule 30.12.2015Pygtail
может иметь некоторые дополнительные функции, которые вызывают проблемы с разрешениями. Вы пробовали просто читать файл в обычном режиме?print [line for line in open('/var/log/iptables.log').read().splitlines()]
- person vesche   schedule 30.12.2015chmod
:chmod 4644 iptables.log
. Но я не понимаю, почему (это бит SUID, но работает только в том случае, если 3 октета имеют права на чтение). - person MGautier   schedule 13.01.2016