xdm:moved into main for yalı
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
--- config/GiveConsole.sessreg-utmp-fix-bug177890 2006-07-24 04:20:10.000000000 -0400
|
||||
+++ config/GiveConsole 2006-07-24 04:21:16.000000000 -0400
|
||||
@@ -8,3 +8,5 @@
|
||||
# causing serious grief.
|
||||
#
|
||||
chown $USER /dev/console
|
||||
+exec /usr/bin/sessreg -a -w "/var/log/wtmp" -u "/var/run/utmp" \
|
||||
+ -x "/etc/X11/xdm/Xservers" -l $DISPLAY -h "" $USER
|
||||
@@ -0,0 +1,109 @@
|
||||
diff -up xdm-1.1.11/config.h.in.add-audit-events xdm-1.1.11/config.h.in
|
||||
--- xdm-1.1.11/config.h.in.add-audit-events 2011-09-25 09:42:16.000000000 +0200
|
||||
+++ xdm-1.1.11/config.h.in 2011-09-26 17:44:21.796495208 +0200
|
||||
@@ -193,6 +193,9 @@
|
||||
/* Use PAM for authentication */
|
||||
#undef USE_PAM
|
||||
|
||||
+/* Add linux audit support */
|
||||
+#undef HAVE_LIBAUDIT
|
||||
+
|
||||
/* Use Security-Enhanced Linux (SELinux) support */
|
||||
#undef USE_SELINUX
|
||||
|
||||
diff -up xdm-1.1.11/configure.ac.add-audit-events xdm-1.1.11/configure.ac
|
||||
--- xdm-1.1.11/configure.ac.add-audit-events 2011-09-25 09:41:19.000000000 +0200
|
||||
+++ xdm-1.1.11/configure.ac 2011-09-26 17:43:30.616557363 +0200
|
||||
@@ -145,6 +145,29 @@ if test "x$USE_SELINUX" != "xno" ; then
|
||||
)
|
||||
fi
|
||||
|
||||
+AC_ARG_WITH(libaudit,
|
||||
+ [ --with-libaudit=[auto/yes/no] Add Linux audit support [default=auto]],,
|
||||
+ with_libaudit=auto)
|
||||
+
|
||||
+# Check for Linux auditing API
|
||||
+#
|
||||
+# libaudit detection
|
||||
+if test x$with_libaudit = xno ; then
|
||||
+ have_libaudit=no;
|
||||
+else
|
||||
+ # See if we have audit daemon library
|
||||
+ AC_CHECK_LIB(audit, audit_log_user_message,
|
||||
+ have_libaudit=yes, have_libaudit=no)
|
||||
+fi
|
||||
+
|
||||
+AM_CONDITIONAL(HAVE_LIBAUDIT, test x$have_libaudit = xyes)
|
||||
+
|
||||
+if test x$have_libaudit = xyes ; then
|
||||
+ XDMGREET_LIBS="$XDMGREET_LIBS -laudit"
|
||||
+ AC_DEFINE(HAVE_LIBAUDIT,1,[linux audit support])
|
||||
+fi
|
||||
+
|
||||
+
|
||||
# Check whether to install systemd unit files, as suggested in daemon(7).
|
||||
AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
|
||||
[Directory for systemd service files (default from the System and Service Manager)]),,
|
||||
diff -up xdm-1.1.11/greeter/greet.c.add-audit-events xdm-1.1.11/greeter/greet.c
|
||||
--- xdm-1.1.11/greeter/greet.c.add-audit-events 2011-09-25 09:35:47.000000000 +0200
|
||||
+++ xdm-1.1.11/greeter/greet.c 2011-09-26 17:46:11.996361376 +0200
|
||||
@@ -86,6 +86,13 @@ from The Open Group.
|
||||
# endif
|
||||
#endif
|
||||
|
||||
+#ifdef HAVE_LIBAUDIT
|
||||
+#include <libaudit.h>
|
||||
+#include <pwd.h>
|
||||
+#else
|
||||
+#define log_to_audit_system(l,h,s) do { ; } while (0)
|
||||
+#endif
|
||||
+
|
||||
#include <string.h>
|
||||
|
||||
#if defined(SECURE_RPC) && defined(sun)
|
||||
@@ -415,6 +422,29 @@ FailedLogin (struct display *d, const ch
|
||||
DrawFail (login);
|
||||
}
|
||||
|
||||
+#ifdef USE_PAM
|
||||
+#ifdef HAVE_LIBAUDIT
|
||||
+static void
|
||||
+log_to_audit_system(const pam_handle_t *pamhp, int success)
|
||||
+{
|
||||
+ struct passwd *pw = NULL;
|
||||
+ char *hostname = NULL, *tty = NULL, *login=NULL;
|
||||
+ int audit_fd;
|
||||
+
|
||||
+ audit_fd = audit_open();
|
||||
+ pam_get_item(pamhp, PAM_RHOST, &hostname);
|
||||
+ pam_get_item(pamhp, PAM_TTY, &tty);
|
||||
+ pam_get_item(pamhp, PAM_USER, &login);
|
||||
+ if (login)
|
||||
+ pw = getpwnam(login);
|
||||
+ audit_log_acct_message(audit_fd, AUDIT_USER_LOGIN,
|
||||
+ NULL, "login", login ? login : "(unknown)",
|
||||
+ pw ? pw->pw_uid : -1, hostname, NULL, tty, success);
|
||||
+ close(audit_fd);
|
||||
+}
|
||||
+#endif
|
||||
+#endif
|
||||
+
|
||||
_X_EXPORT
|
||||
greet_user_rtn GreetUser(
|
||||
struct display *d,
|
||||
@@ -600,6 +630,7 @@ greet_user_rtn GreetUser(
|
||||
if ((pam_error == PAM_SUCCESS) && (Verify (d, greet, verify))) {
|
||||
SetPrompt (login, 1, "Login Successful", LOGIN_TEXT_INFO, False);
|
||||
SetValue (login, 1, NULL);
|
||||
+ log_to_audit_system(*pamhp, 1);
|
||||
break;
|
||||
} else {
|
||||
/* Try to fill in username for failed login error log */
|
||||
@@ -611,6 +642,7 @@ greet_user_rtn GreetUser(
|
||||
(void *) &username));
|
||||
}
|
||||
FailedLogin (d, username);
|
||||
+ log_to_audit_system(*pamhp, 0);
|
||||
RUN_AND_CHECK_PAM_ERROR(pam_end,
|
||||
(*pamhp, pam_error));
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
--- configure.ac.jx 2010-04-09 21:49:03.000000000 -0400
|
||||
+++ configure.ac 2011-04-01 13:24:14.000000000 -0400
|
||||
@@ -454,6 +454,7 @@
|
||||
AM_CONDITIONAL(HAS_XDM_AUTH, test x$xdmauth = xyes -a x$xdmauth_enable != xno)
|
||||
|
||||
AC_SEARCH_LIBS(crypt, crypt)
|
||||
+AC_SEARCH_LIBS([dlopen], [dl])
|
||||
|
||||
AC_SUBST(XDM_CFLAGS)
|
||||
AC_SUBST(XDM_LIBS)
|
||||
Reference in New Issue
Block a user