从python脚本

时间:2015-12-30 16:42:44

标签: python file permissions root

目前我在读取文件权限(root)方面遇到了一些问题。我试图在我的系统(rsyslogd)中打开由iptables生成的日志文件。所以,当我在/var/log/iptables.log中生成该文件时,由root用户生成(而不是我的用户拥有sudoers配置授予的所有权限)

我使用包装器打开文件(Pygtail),但与python中的open函数相同。

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脚本中。没别了。

有什么想法吗?我会把一些图书馆看成像oslo.rootwrap这样的pip,但我不太了解它。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。由rsyslogd创建文件权限。默认情况下是八位字节644,但在我的情况下是错误的(640)。

所以,我只是在我的系统中为/etc/rsyslog.conf更改了该值,现在/ var / log /中生成的新文件具有正确的权限。

$FileCreateMode 0644
  

fileCreateMode [default 0644] [octalNumber]

     

默认值:0644

     

如果不是,则设置要用于操作的默认fileCreateMode   指定了显式的。

File Output Module rsyslog configuration

感谢您的帮助! =)

PD:现在我的另一个问题是由pygtail生成的.offset文件(权限也是如此)。但这是另一个问题,而不是与这个问题不对应。