[master] Resurrect auditd

David Shea dshea at redhat.com
Mon Jul 28 15:56:53 UTC 2014


All of auditd except for the parts that call exit() was wrapped in
USESELINUX ifdefs, which was not defined, so our fake auditd hasn't
done anything for a while. Remove the ifdefs since building an auditd that
does that much nothing is kind of silly. Fix the LDFLAGS needed to link.
Switch from oom_adj to oom_score_adj since the former was deprecated
some time ago and complains when you use it now. Add auditd to
makeupdates.
---
 configure.ac                |  3 +++
 pyanaconda/isys/Makefile.am |  2 +-
 pyanaconda/isys/auditd.c    |  8 ++------
 scripts/makeupdates         | 24 ++++++++++++++++++++++++
 4 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/configure.ac b/configure.ac
index 707aa7c..34ef03b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -86,6 +86,9 @@ AC_CHECK_FUNCS([getcwd memset mkdir strchr strdup],
                [],
                [ANACONDA_SOFT_FAILURE([Function $ac_func not found.])])
 
+AC_CHECK_LIB([audit], [audit_open], [:],
+             [ANACONDA_SOFT_FAILURE([libaudit not found])])
+
 AM_PATH_PYTHON(python_required_version)
 
 # Check for the python extension paths
diff --git a/pyanaconda/isys/Makefile.am b/pyanaconda/isys/Makefile.am
index c787f60..cdb3baf 100644
--- a/pyanaconda/isys/Makefile.am
+++ b/pyanaconda/isys/Makefile.am
@@ -34,6 +34,6 @@ auditddir             = $(libexecdir)/$(PACKAGE_NAME)
 auditd_PROGRAMS       = auditd
 auditd_SOURCES        = auditd.c
 auditd_CFLAGS         = -DSTANDALONE $(SELINUX_CFLAGS)
-auditd_LDADD          = $(SELINUX_LIBS) $(LIBNL_LIBS)
+auditd_LDFLAGS        = -laudit
 
 MAINTAINERCLEANFILES = Makefile.in
diff --git a/pyanaconda/isys/auditd.c b/pyanaconda/isys/auditd.c
index 3d41b73..d598f8d 100644
--- a/pyanaconda/isys/auditd.c
+++ b/pyanaconda/isys/auditd.c
@@ -38,7 +38,6 @@
 
 #include "auditd.h"
 
-#ifdef USESELINUX
 static int done;
 
 static void sig_done(int sig)
@@ -92,10 +91,8 @@ static void do_auditd(int fd) {
     }
     return;
 }
-#endif /* USESELINUX */
 
 int audit_daemonize(void) {
-#ifdef USESELINUX
     int fd;
     pid_t child;
 
@@ -118,8 +115,8 @@ int audit_daemonize(void) {
     signal(SIGTSTP, SIG_IGN);
 #endif /* !defined(STANDALONE) */
 
-    if ((fd = open("/proc/self/oom_adj", O_RDWR)) >= 0) {
-        write(fd, "-17", 3);
+    if ((fd = open("/proc/self/oom_score_adj", O_RDWR)) >= 0) {
+        write(fd, "-1000", 5);
         close(fd);
     }
     fd = audit_open();
@@ -130,7 +127,6 @@ int audit_daemonize(void) {
     exit(0);
 #endif /* !defined(STANDALONE) */
 
-#endif /* USESELINUX */
     return 0;
 }
 
diff --git a/scripts/makeupdates b/scripts/makeupdates
index 4d143cd..b631657 100755
--- a/scripts/makeupdates
+++ b/scripts/makeupdates
@@ -342,6 +342,10 @@ def isysChanged(tag):
 def widgetsChanged(tag):
     return _compilableChanged(tag, 'widgets')
 
+def auditdChanged(tag):
+    return _compilableChanged(tag, 'pyanaconda/isys/auditd.c') or \
+            _compilableChanged(tag, 'pyanaconda/isys/auditd.h')
+
 def checkAutotools(srcdir, builddir):
     # Assumes that cwd is srcdir
     if not os.path.isfile(os.path.join(builddir, 'Makefile')):
@@ -374,6 +378,23 @@ def copyUpdatedIsys(updates, srcdir, builddir):
     if os.path.isfile(isysmodule):
         shutil.copy2(isysmodule, tmpupdates)
 
+def copyUpdatedAuditd(updates, srcdir, builddir):
+    os.chdir(srcdir)
+    print("copyUpdatedIsys BUILLDIR %s" % builddir)
+    auditdir = updates + '/usr/sbin'
+
+    checkAutotools(srcdir, builddir)
+
+    os.system('make -C %s -j %d auditd' % (builddir + '/pyanaconda/isys', multiprocessing.cpu_count()))
+
+    # Copy the auditd binary to /usr/sbin
+    if not os.path.isdir(auditdir):
+        os.makedirs(auditdir)
+
+    auditd = builddir + '/pyanaconda/isys/auditd'
+    if os.path.isfile(auditd):
+        shutil.copy2(auditd, auditdir)
+
 def copyUpdatedWidgets(updates, srcdir, builddir):
     os.chdir(srcdir)
 
@@ -951,6 +972,9 @@ def main():
         if widgetsChanged(args.tag):
             copyUpdatedWidgets(updates, cwd, builddir)
 
+        if auditdChanged(args.tag):
+            copyUpdatedAuditd(updates, cwd, builddir)
+
     if args.po:
         copyTranslations(updates, cwd, builddir)
 
-- 
2.0.0



More information about the anaconda-patches mailing list