- do not ask for blank password when SELinux confined (#254044)
- initialize homedirs in namespace init script (original patch by dwalsh)
This commit is contained in:
parent
a47d5ca5e4
commit
9e1a698edf
29
pam-0.99.7.1-namespace-homedir.patch
Normal file
29
pam-0.99.7.1-namespace-homedir.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
diff -up Linux-PAM-0.99.7.1/modules/pam_namespace/namespace.init.namespace_homedir Linux-PAM-0.99.7.1/modules/pam_namespace/namespace.init
|
||||||
|
--- Linux-PAM-0.99.7.1/modules/pam_namespace/namespace.init.namespace_homedir 2007-08-23 15:49:45.000000000 -0400
|
||||||
|
+++ Linux-PAM-0.99.7.1/modules/pam_namespace/namespace.init 2007-08-23 15:51:56.000000000 -0400
|
||||||
|
@@ -1,6 +1,23 @@
|
||||||
|
#!/bin/sh -p
|
||||||
|
-# This is only a boilerplate for the instance initialization script.
|
||||||
|
-# It receives polydir path as $1 and the instance path as $2.
|
||||||
|
+# It receives polydir path as $1 and the instance path as $2,
|
||||||
|
+# $3 is an indicatory whether $2 is a newly created directory,
|
||||||
|
+# $4 is the user who is logging in.
|
||||||
|
+#
|
||||||
|
+# The following section will copy the contents of /etc/skel if this is a
|
||||||
|
+# newly created home directory.
|
||||||
|
+if [ "$3" = 1 ]; then
|
||||||
|
+ user="$4"
|
||||||
|
+ passwd=$(getent passwd "$user")
|
||||||
|
+ homedir=$(echo "$passwd" | cut -f6 -d":")
|
||||||
|
+ if [ "$1" = "$homedir" ]; then
|
||||||
|
+ gid=$(echo "$passwd" | cut -f4 -d":")
|
||||||
|
+ cp -aT /etc/skel "$homedir"
|
||||||
|
+ [ -x /sbin/restorecon ] && /sbin/restorecon -R "$homedir"
|
||||||
|
+ chown -R "$user":"$gid" "$homedir"
|
||||||
|
+ mode=$(awk '/^UMASK/{gsub("#.*$", "", $2); printf "%o", and(0777,compl(strtonum("0" $2))); exit}' /etc/login.defs)
|
||||||
|
+ chmod ${mode:-700} "$homedir"
|
||||||
|
+ fi
|
||||||
|
+fi
|
||||||
|
#
|
||||||
|
# If you intend to polyinstantiate /tmp and you also want to use the X windows
|
||||||
|
# environment, you will have to use this script to bind mount the socket that
|
65
pam-0.99.8.1-unix-blankpass.patch
Normal file
65
pam-0.99.8.1-unix-blankpass.patch
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
diff -up Linux-PAM-0.99.8.1/modules/pam_unix/unix_chkpwd.c.blankpass Linux-PAM-0.99.8.1/modules/pam_unix/unix_chkpwd.c
|
||||||
|
--- Linux-PAM-0.99.8.1/modules/pam_unix/unix_chkpwd.c.blankpass 2007-08-22 18:45:17.000000000 +0200
|
||||||
|
+++ Linux-PAM-0.99.8.1/modules/pam_unix/unix_chkpwd.c 2007-08-24 10:21:54.000000000 +0200
|
||||||
|
@@ -48,7 +48,7 @@ int main(int argc, char *argv[])
|
||||||
|
char pass[MAXPASS + 1];
|
||||||
|
char *option;
|
||||||
|
int npass, nullok;
|
||||||
|
- int force_failure = 0;
|
||||||
|
+ int blankpass = 0;
|
||||||
|
int retval = PAM_AUTH_ERR;
|
||||||
|
char *user;
|
||||||
|
char *passwords[] = { pass };
|
||||||
|
@@ -113,6 +113,10 @@ int main(int argc, char *argv[])
|
||||||
|
if (npass != 1) { /* is it a valid password? */
|
||||||
|
_log_err(LOG_DEBUG, "no valid password supplied");
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ if (*pass == '\0') {
|
||||||
|
+ blankpass = 1;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
retval = _unix_verify_password(user, pass, nullok);
|
||||||
|
|
||||||
|
@@ -120,8 +124,11 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
|
/* return pass or fail */
|
||||||
|
|
||||||
|
- if ((retval != PAM_SUCCESS) || force_failure) {
|
||||||
|
- _log_err(LOG_NOTICE, "password check failed for user (%s)", user);
|
||||||
|
+ if (retval != PAM_SUCCESS) {
|
||||||
|
+ /* don't log if it is a test for blank password */
|
||||||
|
+ if (!blankpass) {
|
||||||
|
+ _log_err(LOG_NOTICE, "password check failed for user (%s)", user);
|
||||||
|
+ }
|
||||||
|
return PAM_AUTH_ERR;
|
||||||
|
} else {
|
||||||
|
return PAM_SUCCESS;
|
||||||
|
diff -up Linux-PAM-0.99.8.1/modules/pam_unix/support.c.blankpass Linux-PAM-0.99.8.1/modules/pam_unix/support.c
|
||||||
|
--- Linux-PAM-0.99.8.1/modules/pam_unix/support.c.blankpass 2007-08-22 18:45:17.000000000 +0200
|
||||||
|
+++ Linux-PAM-0.99.8.1/modules/pam_unix/support.c 2007-08-24 10:38:09.000000000 +0200
|
||||||
|
@@ -36,6 +36,9 @@
|
||||||
|
#define SELINUX_ENABLED 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+static int _unix_run_helper_binary(pam_handle_t *pamh, const char *passwd,
|
||||||
|
+ unsigned int ctrl, const char *user);
|
||||||
|
+
|
||||||
|
/* this is a front-end for module-application conversations */
|
||||||
|
|
||||||
|
int _make_remark(pam_handle_t * pamh, unsigned int ctrl,
|
||||||
|
@@ -441,6 +444,14 @@ _unix_blankpasswd (pam_handle_t *pamh, u
|
||||||
|
* if shadowing is enabled
|
||||||
|
*/
|
||||||
|
spwdent = pam_modutil_getspnam(pamh, name);
|
||||||
|
+ if (spwdent == NULL && (geteuid() || SELINUX_ENABLED)) {
|
||||||
|
+ /* we are not root perhaps this is the reason? Run helper */
|
||||||
|
+ D(("running helper binary"));
|
||||||
|
+ if (_unix_run_helper_binary(pamh, "", ctrl, name) == PAM_SUCCESS)
|
||||||
|
+ return 1;
|
||||||
|
+ else
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
if (spwdent)
|
||||||
|
salt = x_strdup(spwdent->sp_pwdp);
|
10
pam.spec
10
pam.spec
@ -11,7 +11,7 @@
|
|||||||
Summary: A security tool which provides authentication for applications
|
Summary: A security tool which provides authentication for applications
|
||||||
Name: pam
|
Name: pam
|
||||||
Version: 0.99.8.1
|
Version: 0.99.8.1
|
||||||
Release: 5%{?dist}
|
Release: 6%{?dist}
|
||||||
# The library is BSD licensed with option to relicense as GPLv2+ - this option is redundant
|
# The library is BSD licensed with option to relicense as GPLv2+ - this option is redundant
|
||||||
# as the BSD license allows that anyway. pam_timestamp and pam_console modules are GPLv2+,
|
# as the BSD license allows that anyway. pam_timestamp and pam_console modules are GPLv2+,
|
||||||
# pam_rhosts_auth module is BSD with advertising
|
# pam_rhosts_auth module is BSD with advertising
|
||||||
@ -33,12 +33,14 @@ Patch4: pam-0.99.8.1-dbpam.patch
|
|||||||
Patch5: pam-0.99.8.1-audit-no-log.patch
|
Patch5: pam-0.99.8.1-audit-no-log.patch
|
||||||
Patch24: pam-0.99.8.1-unix-update-helper.patch
|
Patch24: pam-0.99.8.1-unix-update-helper.patch
|
||||||
Patch25: pam-0.99.7.1-unix-hpux-aging.patch
|
Patch25: pam-0.99.7.1-unix-hpux-aging.patch
|
||||||
|
Patch26: pam-0.99.8.1-unix-blankpass.patch
|
||||||
Patch31: pam-0.99.3.0-cracklib-try-first-pass.patch
|
Patch31: pam-0.99.3.0-cracklib-try-first-pass.patch
|
||||||
Patch32: pam-0.99.3.0-tally-fail-close.patch
|
Patch32: pam-0.99.3.0-tally-fail-close.patch
|
||||||
Patch40: pam-0.99.7.1-namespace-temp-logon.patch
|
Patch40: pam-0.99.7.1-namespace-temp-logon.patch
|
||||||
Patch41: pam-0.99.8.1-namespace-init.patch
|
Patch41: pam-0.99.8.1-namespace-init.patch
|
||||||
Patch42: pam-0.99.8.1-console-hal-handled.patch
|
Patch42: pam-0.99.8.1-console-hal-handled.patch
|
||||||
Patch43: pam-0.99.8.1-console-mfd-scanners.patch
|
Patch43: pam-0.99.8.1-console-mfd-scanners.patch
|
||||||
|
Patch44: pam-0.99.7.1-namespace-homedir.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
Requires: cracklib, cracklib-dicts >= 2.8
|
Requires: cracklib, cracklib-dicts >= 2.8
|
||||||
@ -97,12 +99,14 @@ cp %{SOURCE7} .
|
|||||||
%patch5 -p1 -b .no-log
|
%patch5 -p1 -b .no-log
|
||||||
%patch24 -p1 -b .update-helper
|
%patch24 -p1 -b .update-helper
|
||||||
%patch25 -p1 -b .unix-hpux-aging
|
%patch25 -p1 -b .unix-hpux-aging
|
||||||
|
%patch26 -p1 -b .blankpass
|
||||||
%patch31 -p1 -b .try-first-pass
|
%patch31 -p1 -b .try-first-pass
|
||||||
%patch32 -p1 -b .fail-close
|
%patch32 -p1 -b .fail-close
|
||||||
%patch40 -p1 -b .temp-logon
|
%patch40 -p1 -b .temp-logon
|
||||||
%patch41 -p1 -b .ns-init
|
%patch41 -p1 -b .ns-init
|
||||||
%patch42 -p1 -b .hal-handled
|
%patch42 -p1 -b .hal-handled
|
||||||
%patch43 -p1 -b .mfd-scanners
|
%patch43 -p1 -b .mfd-scanners
|
||||||
|
%patch44 -p1 -b .homedir
|
||||||
|
|
||||||
autoreconf
|
autoreconf
|
||||||
|
|
||||||
@ -393,6 +397,10 @@ fi
|
|||||||
%doc doc/adg/*.txt doc/adg/html
|
%doc doc/adg/*.txt doc/adg/html
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Aug 24 2007 Tomas Mraz <tmraz@redhat.com> 0.99.8.1-6
|
||||||
|
- do not ask for blank password when SELinux confined (#254044)
|
||||||
|
- initialize homedirs in namespace init script (original patch by dwalsh)
|
||||||
|
|
||||||
* Wed Aug 22 2007 Tomas Mraz <tmraz@redhat.com> 0.99.8.1-5
|
* Wed Aug 22 2007 Tomas Mraz <tmraz@redhat.com> 0.99.8.1-5
|
||||||
- most devices are now handled by HAL and not pam_console (patch by davidz)
|
- most devices are now handled by HAL and not pam_console (patch by davidz)
|
||||||
- license tag fix
|
- license tag fix
|
||||||
|
Loading…
Reference in New Issue
Block a user