Refresh patches

This commit is contained in:
Chris Hofstaedtler
2026-01-06 00:54:44 +01:00
parent feed892a2c
commit ee8744ab89
7 changed files with 73 additions and 94 deletions
+41 -62
View File
@@ -7,52 +7,31 @@ Remove settings only applicable without PAM support enabled.
Remove obscure commented-out settings.
Remove explanation about write(1), which Debian does not ship anymore.
---
etc/login.defs | 369 +++++++--------------------------------------------------
1 file changed, 44 insertions(+), 325 deletions(-)
etc/login.defs | 360 ++++-----------------------------------------------------
1 file changed, 25 insertions(+), 335 deletions(-)
diff --git a/etc/login.defs b/etc/login.defs
index 33622c2..91d3ec4 100644
index 966724c..9a73539 100644
--- a/etc/login.defs
+++ b/etc/login.defs
@@ -1,24 +1,38 @@
@@ -1,133 +1,20 @@
#
# /etc/login.defs - Configuration control definitions for the shadow package.
#
-# $Id$
-#
+# REQUIRED for useradd/userdel/usermod
+# Directory where mailboxes reside, _or_ name of file, relative to the
+# home directory. If you _do_ define MAIL_DIR and MAIL_FILE,
+# MAIL_DIR takes precedence.
#
-
-#
-# Delay in seconds before being allowed another attempt after a login failure
-# Note: When PAM is used, some modules may enforce a minimum delay (e.g.
-# Note: when PAM is used, some modules may enforce a minimum delay (e.g.
-# pam_unix(8) enforces a 2s delay)
+# Essentially:
+# - MAIL_DIR defines the location of users mail spool files
+# (for mbox use) by appending the username to MAIL_DIR as defined
+# below.
+# - MAIL_FILE defines the location of the users mail spool files as the
+# fully-qualified filename obtained by prepending the user home
+# directory before $MAIL_FILE
#
-#
-FAIL_DELAY 3
-
+# NOTE: This is no more used for setting up users MAIL environment variable
+# which is, starting from shadow 4.0.12-1 in Debian, entirely the
+# job of the pam_mail PAM modules
+# See default PAM configuration files provided for
+# login, su, etc.
#
-#
-# Enable logging and display of /var/log/faillog login(1) failure info.
-#
-FAILLOG_ENAB yes
+# This is a temporary situation: setting these variables will soon
+# move to /etc/default/useradd and the variables will then be
+# no more supported
+MAIL_DIR /var/mail
+#MAIL_FILE .mail
#
# Enable display of unknown usernames when login(1) failures are recorded.
@@ -62,11 +41,11 @@ index 33622c2..91d3ec4 100644
+# concern
LOG_UNKFAIL_ENAB no
#
@@ -26,110 +40,12 @@ LOG_UNKFAIL_ENAB no
#
LOG_OK_LOGINS no
-#
-# Enable logging of successful logins
-#
-LOG_OK_LOGINS no
-
-#
-# Enable logging and display of /var/log/lastlog login(1) time info.
-#
@@ -136,12 +115,12 @@ index 33622c2..91d3ec4 100644
-#
-#ISSUE_FILE /etc/issue
-
#
# If defined, file which maps tty line to TERM environment parameter.
# Each line of the file is in a format similar to "vt100 tty01".
#
#TTYTYPE_FILE /etc/ttytype
-#
-# If defined, file which maps tty line to TERM environment parameter.
-# Each line of the file is in a format similar to "vt100 tty01".
-#
-#TTYTYPE_FILE /etc/ttytype
-
-#
-# If defined, login(1) failures will be logged here in a utmp format.
-# last(1), when invoked as lastb(1), will read /var/log/btmp, so...
@@ -165,16 +144,16 @@ index 33622c2..91d3ec4 100644
-
-#
-# *REQUIRED*
-# Directory where mailboxes reside, _or_ name of file, relative to the
-# home directory. If you _do_ define both, MAIL_DIR takes precedence.
-#
-MAIL_DIR /var/spool/mail
-#MAIL_FILE .mail
-
+# REQUIRED for useradd/userdel/usermod
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
#
# If defined, file which inhibits all the usual chatter during the login
# sequence. If a full pathname, then hushed mode will be enabled if the
@@ -139,40 +55,21 @@ MAIL_DIR /var/spool/mail
-MAIL_DIR /var/spool/mail
+MAIL_DIR /var/mail
#MAIL_FILE .mail
#
@@ -139,40 +26,21 @@ MAIL_DIR /var/spool/mail
HUSHLOGIN_FILE .hushlogin
#HUSHLOGIN_FILE /etc/hushlogins
@@ -220,7 +199,7 @@ index 33622c2..91d3ec4 100644
TTYPERM 0600
#
@@ -180,61 +77,35 @@ TTYPERM 0600
@@ -180,61 +48,35 @@ TTYPERM 0600
#
# ERASECHAR Terminal ERASE character ('\010' = backspace).
# KILLCHAR Terminal KILL character ('\025' = CTRL/U).
@@ -285,7 +264,7 @@ index 33622c2..91d3ec4 100644
# Extra per user uids
SUB_UID_MIN 100000
SUB_UID_MAX 600100000
@@ -246,8 +117,8 @@ SUB_UID_COUNT 65536
@@ -246,8 +88,8 @@ SUB_UID_COUNT 65536
GID_MIN 1000
GID_MAX 60000
# System accounts
@@ -296,7 +275,7 @@ index 33622c2..91d3ec4 100644
# Extra per user group ids
SUB_GID_MIN 100000
SUB_GID_MAX 600100000
@@ -255,6 +126,9 @@ SUB_GID_COUNT 65536
@@ -255,6 +97,9 @@ SUB_GID_COUNT 65536
#
# Max number of login(1) retries if password is bad
@@ -306,7 +285,7 @@ index 33622c2..91d3ec4 100644
#
LOGIN_RETRIES 5
@@ -263,28 +137,6 @@ LOGIN_RETRIES 5
@@ -263,28 +108,6 @@ LOGIN_RETRIES 5
#
LOGIN_TIMEOUT 60
@@ -323,7 +302,7 @@ index 33622c2..91d3ec4 100644
-#
-# Number of significant characters in the password for crypt().
-# Default is 8, don't change unless your crypt() is better.
-# Ignored if MD5_CRYPT_ENAB set to "yes".
-# Only used for DES encryption algorithm.
-#
-#PASS_MAX_LEN 8
-
@@ -335,7 +314,7 @@ index 33622c2..91d3ec4 100644
#
# Which fields may be changed by regular users using chfn(1) - use
# any combination of letters "frwh" (full name, room number, work
@@ -294,29 +146,6 @@ CHFN_AUTH yes
@@ -294,29 +117,6 @@ CHFN_AUTH yes
CHFN_RESTRICT rwh
#
@@ -353,7 +332,7 @@ index 33622c2..91d3ec4 100644
-# Set to "no" if you need to copy encrypted passwords to other systems
-# which don't understand the new algorithm. Default is "no".
-#
-# Note: If you use PAM, it is recommended to use a value consistent with
-# Note: if you use PAM, it is recommended to use a value consistent with
-# the PAM modules configuration.
-#
-# This variable is deprecated. You should use ENCRYPT_METHOD instead.
@@ -365,11 +344,11 @@ index 33622c2..91d3ec4 100644
# If set to MD5, MD5-based algorithm will be used for encrypting password
# If set to SHA256, SHA256-based algorithm will be used for encrypting password
# If set to SHA512, SHA512-based algorithm will be used for encrypting password
@@ -326,66 +155,10 @@ CHFN_RESTRICT rwh
@@ -326,66 +126,10 @@ CHFN_RESTRICT rwh
# MD5 and DES should not be used for new hashes, see crypt(5) for recommendations.
# Overrides the MD5_CRYPT_ENAB option
#
-# Note: If you use PAM, it is recommended to use a value consistent with
-# Note: if you use PAM, it is recommended to use a value consistent with
+# Note: It is recommended to use a value consistent with
# the PAM modules configuration.
#
@@ -434,7 +413,7 @@ index 33622c2..91d3ec4 100644
#
# Should login be allowed if we can't cd to the home directory?
@@ -401,12 +174,6 @@ DEFAULT_HOME yes
@@ -401,12 +145,6 @@ DEFAULT_HOME yes
#
NONEXISTENT /nonexistent
@@ -447,7 +426,7 @@ index 33622c2..91d3ec4 100644
#
# If defined, this command is run when removing a user.
# It should remove any at/cron/print jobs etc. owned by
@@ -415,59 +182,11 @@ ENVIRON_FILE /etc/environment
@@ -415,59 +153,11 @@ ENVIRON_FILE /etc/environment
#USERDEL_CMD /usr/sbin/userdel_local
#
@@ -508,7 +487,7 @@ index 33622c2..91d3ec4 100644
-# Used in pam_timestamp module to calculate the keyed-hash message
-# authentication code.
-#
-# Note: It is recommended to check hmac(3) to see the possible algorithms
-# Note: it is recommended to check hmac(3) to see the possible algorithms
-# that are available in your system.
-#
-#HMAC_CRYPTO_ALGO SHA512
@@ -8,10 +8,10 @@ Bug: http://bugs.debian.org/1100563
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/useradd.c b/src/useradd.c
index 9da533a..2f5df5f 100644
index b3ab1c4..bbc9859 100644
--- a/src/useradd.c
+++ b/src/useradd.c
@@ -2372,14 +2372,21 @@ static void create_mail (void)
@@ -2406,14 +2406,21 @@ static void create_mail(const struct option_flags *flags)
#endif
}
@@ -17,7 +17,7 @@ configuration files shipped in Debian (debian/default/useradd).
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/man/useradd.8.xml b/man/useradd.8.xml
index fd9ff69..69126ee 100644
index e6db7f6..2e83b4f 100644
--- a/man/useradd.8.xml
+++ b/man/useradd.8.xml
@@ -262,7 +262,7 @@
@@ -30,10 +30,10 @@ index fd9ff69..69126ee 100644
</listitem>
</varlistentry>
diff --git a/src/useradd.c b/src/useradd.c
index 36b9b8f..9da533a 100644
index 899efe3..b3ab1c4 100644
--- a/src/useradd.c
+++ b/src/useradd.c
@@ -100,14 +100,14 @@ static const char Prog[] = "useradd";
@@ -106,14 +106,14 @@ static const char Prog[] = "useradd";
/*
* These defaults are used if there is no defaults file.
*/
@@ -11,7 +11,7 @@ Status wrt upstream: Debian specific patch.
2 files changed, 12 insertions(+)
diff --git a/man/useradd.8.xml b/man/useradd.8.xml
index 69126ee..e198028 100644
index 2e83b4f..67c469a 100644
--- a/man/useradd.8.xml
+++ b/man/useradd.8.xml
@@ -82,6 +82,12 @@
@@ -28,7 +28,7 @@ index 69126ee..e198028 100644
When invoked without the <option>-D</option> option, the
<command>useradd</command> command creates a new user account using
diff --git a/man/userdel.8.xml b/man/userdel.8.xml
index 32851f1..4373cd8 100644
index e10a6af..863d3f1 100644
--- a/man/userdel.8.xml
+++ b/man/userdel.8.xml
@@ -58,6 +58,12 @@
@@ -12,18 +12,18 @@ Fixes: #166793
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/lib/commonio.c b/lib/commonio.c
index 7304ec0..6b13f4a 100644
index 2c6a1a2..860efb9 100644
--- a/lib/commonio.c
+++ b/lib/commonio.c
@@ -21,6 +21,7 @@
@@ -22,6 +22,7 @@
#include <sys/stat.h>
#include <stdlib.h>
#include <utime.h>
+#include <grp.h>
#include "alloc/malloc.h"
#include "alloc/reallocf.h"
@@ -949,12 +950,23 @@ int commonio_close (struct commonio_db *db)
#include "atoi/getnum.h"
@@ -931,12 +932,23 @@ commonio_close(struct commonio_db *db, MAYBE_UNUSED bool process_selinux)
if (errors)
goto fail;
} else {
@@ -46,12 +46,12 @@ index 7304ec0..6b13f4a 100644
+ }
}
if (SNPRINTF(buf, "%s+", db->filename) == -1)
if (stprintf_a(buf, "%s+", db->filename) == -1)
diff --git a/lib/sgroupio.c b/lib/sgroupio.c
index ef82976..53e7ecd 100644
index ad3adc3..527f5be 100644
--- a/lib/sgroupio.c
+++ b/lib/sgroupio.c
@@ -211,7 +211,7 @@ static struct commonio_db gshadow_db = {
@@ -213,7 +213,7 @@ static struct commonio_db gshadow_db = {
#ifdef WITH_SELINUX
NULL, /* scontext */
#endif
@@ -61,7 +61,7 @@ index ef82976..53e7ecd 100644
0, /* st_gid */
NULL, /* head */
diff --git a/lib/shadowio.c b/lib/shadowio.c
index 8b1c1d2..395d0c8 100644
index bf87503..be917ac 100644
--- a/lib/shadowio.c
+++ b/lib/shadowio.c
@@ -87,7 +87,7 @@ static struct commonio_db shadow_db = {
@@ -11,10 +11,10 @@ Upstream PR 1158 will remove them, probably in the forky timeframe.
4 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/newusers.c b/src/newusers.c
index 38cbddd..710c3e9 100644
index e9353fd..9054373 100644
--- a/src/newusers.c
+++ b/src/newusers.c
@@ -128,7 +128,7 @@ static void usage (int status)
@@ -135,7 +135,7 @@ static void usage (int status)
"\n"
"Options:\n"),
Prog);
@@ -23,7 +23,7 @@ index 38cbddd..710c3e9 100644
#ifndef USE_PAM
(void) fprintf (usageout,
_(" -c, --crypt-method METHOD the crypt method (one of %s)\n"),
@@ -661,6 +661,9 @@ static void process_flags (int argc, char **argv)
@@ -668,6 +668,9 @@ static void process_flags (int argc, char **argv, struct option_flags *flags)
switch (c) {
case 'b':
allow_bad_names = true;
@@ -34,10 +34,10 @@ index 38cbddd..710c3e9 100644
#ifndef USE_PAM
case 'c':
diff --git a/src/pwck.c b/src/pwck.c
index 6272839..a970e74 100644
index c35f03e..81f4ccd 100644
--- a/src/pwck.c
+++ b/src/pwck.c
@@ -134,7 +134,7 @@ usage (int status)
@@ -139,7 +139,7 @@ usage (int status)
"Options:\n"),
Prog);
}
@@ -46,7 +46,7 @@ index 6272839..a970e74 100644
(void) fputs (_(" -h, --help display this help message and exit\n"), usageout);
(void) fputs (_(" -q, --quiet report errors only\n"), usageout);
(void) fputs (_(" -r, --read-only display errors and warnings\n"
@@ -176,6 +176,9 @@ static void process_flags (int argc, char **argv)
@@ -181,6 +181,9 @@ static void process_flags (int argc, char **argv, struct option_flags *flags)
switch (c) {
case 'b':
allow_bad_names = true;
@@ -57,10 +57,10 @@ index 6272839..a970e74 100644
case 'h':
usage (E_SUCCESS);
diff --git a/src/useradd.c b/src/useradd.c
index 2f5df5f..73bf307 100644
index bbc9859..5446f35 100644
--- a/src/useradd.c
+++ b/src/useradd.c
@@ -874,7 +874,7 @@ static void usage (int status)
@@ -877,7 +877,7 @@ static void usage (int status)
"\n"
"Options:\n"),
Prog, Prog, Prog);
@@ -69,7 +69,7 @@ index 2f5df5f..73bf307 100644
(void) fputs (_(" -b, --base-dir BASE_DIR base directory for the home directory of the\n"
" new account\n"), usageout);
#ifdef WITH_BTRFS
@@ -1197,6 +1197,9 @@ static void process_flags (int argc, char **argv)
@@ -1200,6 +1200,9 @@ static void process_flags (int argc, char **argv, struct option_flags *flags)
break;
case 201:
allow_bad_names = true;
@@ -80,10 +80,10 @@ index 2f5df5f..73bf307 100644
case 'c':
if (!VALID (optarg)) {
diff --git a/src/usermod.c b/src/usermod.c
index a0f4d7d..2e04b09 100644
index e8c9da6..dc88776 100644
--- a/src/usermod.c
+++ b/src/usermod.c
@@ -384,7 +384,7 @@ usage (int status)
@@ -396,7 +396,7 @@ usage (int status)
(void) fputs (_(" -a, --append append the user to the supplemental GROUPS\n"
" mentioned by the -G option without removing\n"
" the user from other groups\n"), usageout);
@@ -92,7 +92,7 @@ index a0f4d7d..2e04b09 100644
(void) fputs (_(" -c, --comment COMMENT new value of the GECOS field\n"), usageout);
(void) fputs (_(" -d, --home HOME_DIR new home directory for the user account\n"), usageout);
(void) fputs (_(" -e, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE\n"), usageout);
@@ -1052,6 +1052,9 @@ process_flags(int argc, char **argv)
@@ -1062,6 +1062,9 @@ process_flags(int argc, char **argv, struct option_flags *flags)
break;
case 'b':
allow_bad_names = true;
@@ -9,15 +9,15 @@ Reported as https://github.com/shadow-maint/shadow/issues/1229
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index bacce98..8746683 100644
index b3dd34d..bbda154 100644
--- a/configure.ac
+++ b/configure.ac
@@ -18,7 +18,7 @@ AC_SUBST([LIBSUBID_ABI], [libsubid_abi])
@@ -23,7 +23,7 @@ AC_SUBST([LIBSUBID_ABI], [libsubid_abi])
dnl Some hacks...
test "$prefix" = "NONE" && prefix="/usr"
-test "$prefix" = "/usr" && exec_prefix=""
+test "$prefix" = "/usr" && exec_prefix="/usr"
test "x$prefix" = "xNONE" && prefix="/usr"
-test "X$prefix" = "X/usr" && exec_prefix=""
+test "X$prefix" = "X/usr" && exec_prefix="/usr"
AC_USE_SYSTEM_EXTENSIONS