])
AM_CONDITIONAL([HAVE_USER], [test "x$have_user" = xyes])
-
-AC_ARG_WITH([libseccomp], AS_HELP_STRING([--without-seccomp], [compile without libseccomp]),
- [], [with_seccomp=check]
-)
-have_seccomp=no
-AS_IF([test "x$with_seccomp" != xno], [
- PKG_CHECK_MODULES(SECCOMP,[libseccomp], [have_seccomp=yes], [have_seccomp=no])
- AS_CASE([$with_seccomp:$have_seccomp],
- [yes:no],
- [AC_MSG_ERROR([seccomp selected but libseccomp not found])],
- [*:yes],
- [AC_DEFINE([HAVE_LIBSECCOMP], [1], [Define if libseccomp is available])]
- )
-])
-
-
AC_ARG_ENABLE([chfn-chsh-password],
AS_HELP_STRING([--disable-chfn-chsh-password], [do not require the user to enter the password in chfn and chsh]),
[], [enable_chfn_chsh_password=yes]
login-utils/su-common.h \
login-utils/logindefs.c \
login-utils/logindefs.h
-su_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS) $(SECCOMP_CFLAGS)
+su_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
su_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
-su_LDADD = $(LDADD) libcommon.la -lpam $(SECCOMP_LIBS)
+su_LDADD = $(LDADD) libcommon.la -lpam
if HAVE_LINUXPAM
su_LDADD += -lpam_misc
endif
login-utils/su-common.h \
login-utils/logindefs.c \
login-utils/logindefs.h
-runuser_LDADD = $(LDADD) libcommon.la -lpam $(SECCOMP_LIBS)
-runuser_CFLAGS = $(AM_CFLAGS) $(SECCOMP_CFLAGS)
+runuser_LDADD = $(LDADD) libcommon.la -lpam
if HAVE_LINUXPAM
runuser_LDADD += -lpam_misc
endif
#include <sys/wait.h>
#include <syslog.h>
#include <utmp.h>
-#ifdef HAVE_LIBSECCOMP
-# include <seccomp.h>
-#endif
#include "err.h"
return true;
}
-static void disable_tty_hijack(void)
-{
-#ifdef HAVE_LIBSECCOMP
- scmp_filter_ctx ctx = seccomp_init(SCMP_ACT_ALLOW);
- if (!ctx)
- err(EXIT_FAILURE, _("failed to initialize seccomp context"));
- if (seccomp_rule_add(ctx, SCMP_ACT_ERRNO(EPERM), SCMP_SYS(ioctl), 1,
- SCMP_A1(SCMP_CMP_EQ, (int)TIOCSTI)) < 0)
- err(EXIT_FAILURE, _("failed to add seccomp rule"));
- if (seccomp_load(ctx) < 0)
- err(EXIT_FAILURE, _("failed to load seccomp rule"));
- seccomp_release(ctx);
-#endif /* HAVE_LIBSECCOMP */
-}
-
static void __attribute__((__noreturn__))
usage (int status)
{
change_identity (pw);
if (!same_session)
setsid ();
- else
- disable_tty_hijack();
/* Set environment after pam_open_session, which may put KRB5CCNAME
into the pam_env, etc. */