我正在使用syslog-ng来编写带有覆盆子pi的cisco pix防火墙的日志。 日志每天轮换。旋转之后,最后一个文件被传递给python脚本,该脚本搜索日志文件中的所有ip地址,然后根据主机名查找(如果可能)并用主机名替换ip地址。生成的行将写入单独的日志文件中。到目前为止一切都很好。
我遇到的问题是,python脚本生成的文件有另一个GUID作为syslog-ng生成的文件。
这是 ls -l as *
的输出-rw-r--r-- 1 root root 82799344 Jul 3 03:45 asa_ip_to_hostnames.log
-rw-r----- 1 root adm 200182806 Jul 3 14:05 asa.log
-rw-r----- 1 root adm 135410305 Jul 3 02:25 asa.log.1
-rw-r----- 1 root adm 46145 Jul 2 13:52 asa.log.2.gz
-rw-r----- 1 root adm 36942 Jul 2 13:50 asa.log.3.gz
-rw-r----- 1 root adm 30969 Jul 2 13:49 asa.log.4.gz
-rw-r----- 1 root adm 55544 Jul 2 13:48 asa.log.5.gz
-rw-r----- 1 root adm 74464 Jul 2 13:46 asa.log.6.gz
-rw-r--r-- 1 root root 153725702 Jul 3 03:45 asa_w_hostnames.log
-rw-r--r-- 1 root root 639542 Jul 2 13:53 asa_w_hostnames.log.1
-rw-r--r-- 1 root root 38303 Jul 2 13:51 asa_w_hostnames.log.2.gz
-rw-r--r-- 1 root root 31992 Jul 2 13:49 asa_w_hostnames.log.3.gz
-rw-r--r-- 1 root root 57687 Jul 2 13:48 asa_w_hostnames.log.4.gz
正如您所看到的,通过logrotate创建的文件与root / root相关联,而asa_log文件与adm / root相关联。
我想要所有与adm / root相关联的文件,以便我可以将只读samba用户添加到组adm中,以便可以在Windows系统上复制日志文件。我不想将samba用户添加到adm AND root。
有什么建议吗?
答案 0 :(得分:1)
import os
import pwd
admdetails = pwd.getpwnam('adm')
rootdetails = pwd.getpwnam('root')
for fname in ['name1', ,,,]:
os.chown(fname, rootdetails.pw_uid, admdetails.pr_gid)
或类似的东西应该适应工作。注:您可能需要以root用户身份或sudo身份运行,因为将所有权从root更改为root而不是root 气馁 。
答案 1 :(得分:1)
import os, pwd, grp, stat
grpdetails = grp.getgrnam('adm')
rootdetails = pwd.getpwnam('root')
os.chown(filename_out, rootdetails.pw_uid, grpdetails.gr_gid)
os.chmod(filename_out, stat.S_IREAD | stat.S_IWRITE | stat.S_IRGRP)