从 python 脚本读取具有 root 权限的文件
Read a file with root permissions from python script
此时我在读取文件权限(root)方面遇到了一些问题。我试图在我的系统 (rsyslogd) 中打开一个由 iptables 生成的日志文件。因此,当我将该文件生成到 /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,但我不是很了解。
我解决了这个问题。包含由 rsyslogd 创建的文件权限。默认情况下是八位字节 644,但在我的情况下是错误的 (640)。
所以,我只是在我的系统中更改 /etc/rsyslog.conf 的值,现在 /var/log/ 中生成的新文件具有正确的权限。
$FileCreateMode 0644
fileCreateMode [default 0644] [octalNumber]
Default: 0644
Sets the default fileCreateMode to be used for an action if no
explicit one is specified.
File Output Module rsyslog configuration
感谢您的帮助! =)
PD:现在我对 pygtail 生成的 .offset 文件有另一个问题(也需要权限)。但那是另一个问题,而不是不符合这个问题。
此时我在读取文件权限(root)方面遇到了一些问题。我试图在我的系统 (rsyslogd) 中打开一个由 iptables 生成的日志文件。因此,当我将该文件生成到 /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,但我不是很了解。
我解决了这个问题。包含由 rsyslogd 创建的文件权限。默认情况下是八位字节 644,但在我的情况下是错误的 (640)。
所以,我只是在我的系统中更改 /etc/rsyslog.conf 的值,现在 /var/log/ 中生成的新文件具有正确的权限。
$FileCreateMode 0644
fileCreateMode [default 0644] [octalNumber]
Default: 0644
Sets the default fileCreateMode to be used for an action if no explicit one is specified.
File Output Module rsyslog configuration
感谢您的帮助! =)
PD:现在我对 pygtail 生成的 .offset 文件有另一个问题(也需要权限)。但那是另一个问题,而不是不符合这个问题。