62 lines
1.5 KiB
Python
Executable File
62 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
|
|
"""
|
|
Process:
|
|
|
|
Phase 1:
|
|
Iterate over directory full of files, for all closed files, collect
|
|
contents into singular file, generate metadatafile containing
|
|
auditreport (aureport), 4 checksums (2 each for raw and compressed
|
|
forms), compress content, name in a consistent fashion, remove source
|
|
files.
|
|
Phase 2a:
|
|
Translate input into json format, and filter to "interesting" events,
|
|
store in reduced directory
|
|
Phase 2b (instead of 2a):
|
|
Translate input into json format, and store in database.
|
|
Phase 3:
|
|
TBD
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import glob
|
|
|
|
def file_open(target):
|
|
"""
|
|
Implement a test for open files
|
|
"""
|
|
fds = glob.glob('/proc/[0-9]*/fd/*')
|
|
for fd in fds:
|
|
if not os.access(fd,os.R_OK):
|
|
continue
|
|
try:
|
|
fname = os.readlink(fd)
|
|
if fname == target:
|
|
return True
|
|
except OSError as err:
|
|
if err.errno != 2:
|
|
raise(err)
|
|
return False
|
|
|
|
def main():
|
|
"""
|
|
Executable mainline function
|
|
"""
|
|
if os.geteuid() != 0:
|
|
print "This script must run as root, engaging sudo-powers..."
|
|
os.execv('/usr/bin/sudo', ['python'] + sys.argv)
|
|
sys.exit('Running sudo failed somehow, please remedy')
|
|
|
|
auditdir = '/var/log/audit'
|
|
auditfiles = glob.glob(auditdir+'/audit.log.*')
|
|
|
|
if file_open('/var/log/audit/audit.log'):
|
|
print "It's open"
|
|
else:
|
|
print "Not open"
|
|
|
|
if __name__ == "__main__":
|
|
main()
|