Compare commits

..

1 Commits

Author SHA1 Message Date
Chris Hofstaedtler
c5f795a54a New upstream version 4.19.2 2026-01-25 14:17:08 +01:00
447 changed files with 1106 additions and 10275 deletions

20
configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for shadow 4.19.0.
# Generated by GNU Autoconf 2.71 for shadow 4.19.2.
#
# Report bugs to <pkg-shadow-devel@lists.alioth.debian.org>.
#
@@ -621,8 +621,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='shadow'
PACKAGE_TARNAME='shadow'
PACKAGE_VERSION='4.19.0'
PACKAGE_STRING='shadow 4.19.0'
PACKAGE_VERSION='4.19.2'
PACKAGE_STRING='shadow 4.19.2'
PACKAGE_BUGREPORT='pkg-shadow-devel@lists.alioth.debian.org'
PACKAGE_URL='https://github.com/shadow-maint/shadow'
@@ -1484,7 +1484,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures shadow 4.19.0 to adapt to many kinds of systems.
\`configure' configures shadow 4.19.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1555,7 +1555,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of shadow 4.19.0:";;
short | recursive ) echo "Configuration of shadow 4.19.2:";;
esac
cat <<\_ACEOF
@@ -1728,7 +1728,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
shadow configure 4.19.0
shadow configure 4.19.2
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2328,7 +2328,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by shadow $as_me 4.19.0, which was
It was created by shadow $as_me 4.19.2, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3606,7 +3606,7 @@ fi
# Define the identity of the package.
PACKAGE='shadow'
VERSION='4.19.0'
VERSION='4.19.2'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -20443,7 +20443,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by shadow $as_me 4.19.0, which was
This file was extended by shadow $as_me 4.19.2, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -20512,7 +20512,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
shadow config.status 4.19.0
shadow config.status 4.19.2
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"

View File

@@ -5,7 +5,7 @@ m4_define([libsubid_abi_minor], [0])
m4_define([libsubid_abi_micro], [0])
m4_define([libsubid_abi], [libsubid_abi_major.libsubid_abi_minor.libsubid_abi_micro])
AC_INIT([shadow], [4.19.0], [pkg-shadow-devel@lists.alioth.debian.org], [],
AC_INIT([shadow], [4.19.2], [pkg-shadow-devel@lists.alioth.debian.org], [],
[https://github.com/shadow-maint/shadow])
AC_CONFIG_MACRO_DIRS([m4])
AC_CONFIG_AUX_DIR([build-aux])

78
debian/NEWS vendored
View File

@@ -1,78 +0,0 @@
shadow (1:4.17.0~rc1-1) unstable; urgency=medium
Username checking now once again follows the upstream rules, for
an ecosystem-wide ruleset and security.
-- Chris Hofstaedtler <zeha@debian.org> Sun, 22 Dec 2024 20:12:35 +0100
shadow (1:4.16.0-5) unstable; urgency=medium
/var/log/faillog and the programs to read it are no longer part since
1:4.15.2-2.
The file isn't cleaned up automatically, which should be done manually,
unless it is still needed for special reasons.
-- Chris Hofstaedtler <zeha@debian.org> Sat, 16 Nov 2024 15:48:35 +0100
shadow (1:4.13+dfsg1-2) unstable; urgency=medium
The previous entry falsely states that PREVENT_NO_AUTH in /etc/login.defs
affects authentication. The historical default of letting all users with
empty password field in without authentication is still in effect.
-- Balint Reczey <balint@balintreczey.hu> Mon, 25 Sep 2023 17:04:09 +0200
shadow (1:4.11.1+dfsg1-0exp1) experimental; urgency=medium
Login now prevents an empty password field to be interpreted as
"no authentication required" for UID 0 (root account).
The historical default of letting all users with empty password field
in without authentication can be restored in /etc/login.defs setting
PREVENT_NO_AUTH to "no".
-- Balint Reczey <balint@balintreczey.hu> Sun, 07 Nov 2021 21:51:46 +0100
shadow (1:4.7-1) unstable; urgency=medium
* /etc/securetty is no longer shipped by this package and it is no longer
honored in login's PAM configuration by default. Please see #731656 for the
details.
-- Balint Reczey <rbalint@ubuntu.com> Thu, 20 Jun 2019 13:46:52 +0200
shadow (1:4.0.15-5) unstable; urgency=low
* commands passed in argument to su must use su's -c option and must quote
the command if it contains a space, as in:
su - root -c "ls -l /"
The following commands won't work anymore:
su - root -c ls -l /
su - root "ls -l /"
su - root ls -l /
-- Christian Perrier <bubulle@debian.org> Sat, 8 Apr 2006 20:11:38 +0200
shadow (1:4.0.14-1) unstable; urgency=low
* passwd does not support the -f, -s, and -g options anymore. You should use
the chfn, chsh and gpasswd utilities instead.
* login now distributes the nologin utility, which can be used as a shell
to politely refuse a login
-- Christian Perrier <bubulle@debian.org> Thu, 5 Jan 2006 08:47:44 +0100
shadow (1:4.0.12-1) unstable; urgency=low
CLOSE_SESSIONS and other variables are not used anymore in
/etc/login/defs.
As shadow utilities which use this file now warn about unknown
entries there, administrators should remove such unknown entries.
The supplied login.defs file does not include them anymore.
dpasswd is no more distributed by upstream. Login do not support
dialup password anymore. Re-introducing this functionality in
upstream is not trivial.
-- Christian Perrier <bubulle@debian.org> Thu, 25 Aug 2005 08:38:47 +0200

63
debian/README.Debian vendored
View File

@@ -1,63 +0,0 @@
Read this file first for a brief overview of the current version
of passwd.
---Shadow passwords
The command `shadowconfig on' will turn on shadow password support.
This is the default. Turning off shadow passwords is not supported
anymore.
Together with shadow passwords, you get the ability to set password ages
and expirations with chage(1).
NOTE: If you use the nscd package, you may have problems with a
slight delay in updating the password information. You may notice
this during upgrades of certain packages that try to add a system
user and then access the users information immediately afterwards.
To avoid this, it is suggested that you stop the nscd daemon before
upgrades, then restart it again.
---General configuration
Most of the configuration for the shadow utilities is in
/etc/login.defs. See login.defs(5). The defaults are quite
reasonable.
Also see the /etc/pam.d/* files for each program to configure the PAM
support. PAM documentation is available in several formats in the
libpam-doc package.
---Encryption
This is enabled now using the /etc/pam.d/* files. Examples are given.
---Adding users and groups
Though you may add users and groups with the SysV type commands,
useradd and groupadd, I recommend you add them with Debian adduser
version 3+. adduser gives you more configuration and conforms to the
Debian UID and GID allocation.
Editing user and group parameters can be done with usermod and
groupmod. Removing users and groups can be done with userdel and
groupdel.
--- Group administration
Local group allocation is much easier. With gpasswd(1) you can
designate users to administer groups. They can then securely add or
remove users from the group.
--- What to read next?
Read the manpages, the other files in this directory, and the Shadow
Password HOWTO (included in the doc-linux package). A large portion
of these files deals with getting shadow installed. You can, of
course, ignore those parts.
Also, the libpam-doc package will go a long way to allowing you to take
full advantage of the PAM authentication scheme.

View File

@@ -1,8 +0,0 @@
If you update the translation of upsteam files (thank you for that!) please
submit a pull request upstream instead of filing a bug in the Debian BTS
to get it reviewed and accepted faster.
A testsuite is also available. Instruction on how to run this testsuite
are available in tests/README
-- Balint Reczey <balint@balintreczey.hu>, Mon, 31 Jan 2022 14:07:11 +0100

19
debian/TODO vendored
View File

@@ -1,19 +0,0 @@
Things that should be done:
* Verify the files left in debian/tmp
+ e.g. /etc/default/adduser should be installed
* Check the build system: rebuilding the package twoce in the same tree
doubles the size of the diff.gz file
Other points (not related to the release of a syncronized shadow):
* compare the source with the usages and man pages
+ probably add a sentence to chsh/chfn's manpages about authentication
required for ordinary users
* do something (a tool) for the variables in login.defs
In Debian, some tools are not compiled with the PAM support, so upstream
getdef.c won't be OK.
It should be nice to see in each man page the set of variables used.
The Debian package can now compile (export DEB_BUILD_OPTIONS='nostrip debug')
with the debugging informations. This may be used to extract the set of
variables used in Debian/for each tools.
* verify all the patches around (I've found patches for at least RedHat,
OWL, LFS, Mandriva, Gentoo; are they already applied?)

25
debian/bugs-usertags vendored
View File

@@ -1,25 +0,0 @@
This described the usertags used by the team.
For usertags documentation, see
http://lists.debian.org/debian-devel-announce/2005/09/msg00002.html
All bugs tagged by team members must be tagged with
"user pkg-shadow-devel@lists.alioth.debian.org"
Tags list
---------
toclose: This bug has been announced to be closed in case no more news
or information is received from the bug submitter or someone
else until the delay specified in the limits_YYYYMMDD tag
limits-YYYYMMDD: combine it with "toclose". Specifies the date after which
bugs can be closed without other action in case no news
is received
manpages-replace A bug reported angainst a manpages-xx package to indicate
conflicting man pages. This tag can be used to tune the
Replaces fields.
su-transition: This bug is related to the su transition (#276419)

4460
debian/changelog vendored

File diff suppressed because it is too large Load Diff

91
debian/control vendored
View File

@@ -1,91 +0,0 @@
Source: shadow
Maintainer: Shadow package maintainers <pkg-shadow-devel@lists.alioth.debian.org>
Uploaders:
Serge Hallyn <serge@hallyn.com>,
Chris Hofstaedtler <zeha@debian.org>
Section: admin
Priority: required
Build-Depends:
debhelper-compat (= 13),
dh-package-notes,
dh-sequence-zz-debputy-rrr (>= 0.1.23~),
docbook-xml <!nodoc>,
docbook-xsl <!nodoc>,
gettext,
itstool <!nodoc>,
libacl1-dev,
libattr1-dev,
libaudit-dev [linux-any],
libbsd-dev,
libcrypt-dev,
libltdl-dev,
libpam0g-dev,
libselinux1-dev [linux-any],
libsemanage-dev [linux-any],
libsystemd-dev [linux-any],
libxml2-utils <!nodoc>,
pkgconf,
systemd-dev [linux-any],
xsltproc <!nodoc>
Standards-Version: 4.7.0
Vcs-Git: https://salsa.debian.org/debian/shadow.git -b master
Vcs-Browser: https://salsa.debian.org/debian/shadow
Homepage: https://github.com/shadow-maint/shadow
Rules-Requires-Root: no
Package: passwd
Architecture: any
Multi-Arch: foreign
Depends:
base-passwd (>= 3.6.4),
libpam-modules,
login.defs
Recommends:
sensible-utils
Replaces:
login (<< 1:4.16.0-2~)
Description: change and administer password and group data
This package includes passwd, chsh, chfn, and many other programs to
maintain password and group data.
.
Shadow passwords are supported. See /usr/share/doc/passwd/README.Debian
Package: login.defs
Architecture: all
Multi-Arch: foreign
Replaces:
login (<< 1:4.16.0-2~)
Description: system user management configuration
This package provides the login.defs configuration file,
used by otherwise unrelated tools managing system users.
Package: uidmap
Architecture: any
Multi-Arch: foreign
Priority: optional
Description: programs to help use subuids
These programs help unprivileged users to create uid and gid mappings in
user namespaces.
Package: libsubid5
Section: libs
Priority: optional
Architecture: any
Multi-Arch: same
Description: subordinate id handling library -- shared library
The library provides an interface for querying, granding and ungranting
subordinate user and group ids.
Package: libsubid-dev
Section: libdevel
Priority: optional
Architecture: any
Multi-Arch: same
Depends:
libsubid5 (= ${binary:Version})
Description: subordinate id handling library -- shared library
The library provides an interface for querying, granding and ungranting
subordinate user and group ids.
.
This package contains the C header files that are
needed for applications to use the libsubid library.

177
debian/copyright vendored
View File

@@ -1,177 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: Shadow
Source: https://github.com/shadow-maint/shadow
Files: *
Copyright: 1989-1994, Julianne Frances Haugh
2016-2024, Serge Hallyn <serge@hallyn.com>
License: BSD-3-clause
Files: man/po/da.po
man/po/de.po
man/tr/man1/su.1
po/da.po
po/de.po
po/es.po
po/eu.po
po/fi.po
po/gl.po
po/it.po
po/kk.po
po/nb.po
po/nl.po
po/nn.po
po/pl.po
po/pt_BR.po
po/ru.po
po/sq.po
po/sv.po
po/vi.po
Copyright: 1999-2015, Free Software Foundation, Inc
License: BSD-3-clause
Files: man/fi/man1/chfn.1
man/id/man1/*
man/ko/man1/chfn.1
man/ko/man1/chsh.1
man/tr/man1/chfn.1
man/zh_TW/man1/chfn.1
man/zh_TW/man1/chsh.1
Copyright: 1994, salvatore valente <svalente@athena.mit.edu>
License: GPL-1
Files: man/pt_BR/man8/*
man/zh_TW/man8/usermod.8
Copyright: 1991-1994, Julianne Frances Haugh
License: BSD-3-clause
Files: man/hu/man1/gpasswd.1
man/ja/man1/gpasswd.1
man/pt_BR/man1/*
Copyright: 1996, Rafal Maszkowski <rzm@pdi.net>
License: BSD-3-clause
Files: man/id/man1/login.1
man/ko/man1/login.1
man/tr/man1/login.1
Copyright: 1993, Rickard E. Faith <faith@cs.unc.edu>
License: BSD-3-clause
Files: man/ja/man5/limits.5
man/ja/man8/vipw.8
Copyright: 2001, Maki KURODA
License: BSD-3-clause
Files: man/pt_BR/man5/passwd.5
man/tr/man5/passwd.5
Copyright: 1993, Michael Haardt <michael@moria.de>
License: GPL-2+
Files: man/ja/man1/chage.1
man/ja/man5/suauth.5
Copyright: 1997, Kazuyoshi Furutaka
License: BSD-3-clause
Files: man/po/fr.po
po/fr.po
Copyright: 2011-2013, Debian French l10n team <debian-l10n-french@lists.debian.org>
License: BSD-3-clause
Files: man/zh_TW/man5/*
Copyright: 1993, Michael Haardt <michael@moria.de>
1993, Scorpio, www.linuxforum.net
License: GPL-2+
Files: man/hu/man5/*
Copyright: 1993, Michael Haardt <u31b3hs@pool.informatik.rwth-aachen.de>
License: GPL-2+
Files: lib/subordinateio.h
Copyright: 2012, Eric W. Biederman
License: BSD-3-clause
Files: man/hu/man1/su.1
Copyright: 1999, Ragnar Hojland Espinosa <ragnar@macula.net>
License: BSD-3-clause
Files: man/ja/man8/pwconv.8
Copyright: 2001, Yuichi SATO
License: BSD-3-clause
Files: src/login_nopam.c
Copyright: 1995, Wietse Venema
License: BSD-3-clause
Files: src/su.c
Copyright: 1989 - 1994, Julianne Frances Haugh
1996 - 2000, Marek Michałkiewicz
2000 - 2006, Tomasz Kłoczko
2007 - 2013, Nicolas François
License: GPL-2+
Files: src/vipw.c
Copyright: 1997, Guy Maor <maor@ece.utexas.edu>
1999 - 2000, Marek Michałkiewicz
2002 - 2006, Tomasz Kłoczko
2007 - 2013, Nicolas François
License: GPL-2+
Files: man/ko/man5/*
Copyright: 2000, ASPLINUX <man@asp-linux.co.kr>
License: GPL-2+
Files: debian/*
Copyright: 1999-2001, Ben Collins <bcollins@debian.org>
2001-2004 Karl Ramm <kcr@debian.org>
2004-2014 Christian Perrier <bubulle@debian.org>
2006-2012 Nicolas Francois (Nekral) <nicolas.francois@centraliens.net>
2017-2022 Balint Reczey <balint@balintreczey.hu>
License: BSD-3-clause
Files: debian/passwd.expire.cron
Copyright: 1999, Ben Collins <bcollins@debian.org>
License: BSD-3-clause
License: BSD-3-clause
All rights reserved.
.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
License: GPL-1
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 1
.
On Debian systems, the complete text of version 1 of the GNU General
Public License can be found in '/usr/share/common-licenses/GPL-1'.
License: GPL-2+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 dated June, 1991, or (at
your option) any later version.
.
On Debian systems, the complete text of version 2 of the GNU General
Public License can be found in '/usr/share/common-licenses/GPL-2'.

View File

@@ -1,24 +0,0 @@
manifest-version: '0.1'
packages:
passwd:
transformations:
- path-metadata:
paths:
- usr/bin/chfn
- usr/bin/chsh
- usr/bin/gpasswd
- usr/bin/passwd
mode: "u=rwxs,go=rx"
- path-metadata:
paths:
- usr/bin/chage
- usr/bin/expiry
group: "shadow"
mode: "u=rwx,go=rxs"
uidmap:
transformations:
- path-metadata:
paths:
- usr/bin/newgidmap
- usr/bin/newuidmap
mode: "u=rwxs,go=rx"

View File

@@ -1,37 +0,0 @@
# Default values for useradd(8)
#
# The SHELL variable specifies the default login shell on your
# system.
# Similar to DSHELL in adduser. However, we use "sh" here because
# useradd is a low level utility and should be as general
# as possible
SHELL=/bin/sh
#
# The default group for users
# 100=users on Debian systems
# Same as USERS_GID in adduser
# This argument is used when the -n flag is specified.
# The default behavior (when -n and -g are not specified) is to create a
# primary user group with the same name as the user being added to the
# system.
# GROUP=100
#
# The default home directory. Same as DHOME for adduser
# HOME=/home
#
# The number of days after a password expires until the account
# is permanently disabled
# INACTIVE=-1
#
# The default expire date
# EXPIRE=
#
# The SKEL variable specifies the directory containing "skeletal" user
# files; in other words, files such as a sample .profile that will be
# copied to the new user's home directory when it is created.
# SKEL=/etc/skel
#
# Defines whether the mail spool should be created while
# creating the account
# CREATE_MAIL_SPOOL=no

16
debian/dependencies vendored
View File

@@ -1,16 +0,0 @@
Build-Depends:
==============
* gettext
POT, PO, GMO regenerated?
* xsltproc
used to generate the manpages
* docbook-xsl
needed for /usr/share/xml/docbook/stylesheet/nwalsh/manpages/docbook.xsl
* docbook-xml
manpages/docbook.xsl includes html/docbook.xsl
(But it is not strictly needed. The generated manpages are identical.
Without it, a warning is generated.)
Needed by JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN], [DocBook XML DTD V4.1.2], [], enable_man=no)
* libxml2-utils
needed by the JH_CHECK_XML_CATALOG macros

7
debian/gbp.conf vendored
View File

@@ -1,7 +0,0 @@
[DEFAULT]
upstream-branch = upstream
pristine-tar = True
sign-tags = True
[pq]
patch-numbers = False

View File

@@ -1,7 +0,0 @@
variables:
RELEASE: 'unstable'
# workaround for https://salsa.debian.org/salsa-ci-team/pipeline/-/issues/259
SALSA_CI_REPROTEST_ARGS: --vary=domain_host.use_sudo=1
include:
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
- https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml

View File

@@ -1,3 +0,0 @@
usr/include/*
usr/lib/*/libsubid.a
usr/lib/*/libsubid.so

View File

@@ -1 +0,0 @@
usr/lib/*/libsubid.so.*

View File

@@ -1,11 +0,0 @@
libsubid.so.5 libsubid5 #MINVER#
subid_free@Base 1:4.16.0
subid_get_gid_owners@Base 1:4.16.0
subid_get_gid_ranges@Base 1:4.16.0
subid_get_uid_owners@Base 1:4.16.0
subid_get_uid_ranges@Base 1:4.16.0
subid_grant_gid_range@Base 1:4.16.0
subid_grant_uid_range@Base 1:4.16.0
subid_init@Base 1:4.16.0
subid_ungrant_gid_range@Base 1:4.16.0
subid_ungrant_uid_range@Base 1:4.16.0

View File

@@ -1 +0,0 @@
etc/login.defs etc

View File

@@ -1,2 +0,0 @@
usr/share/man/*/man5/login.defs.5
usr/share/man/man5/login.defs.5

View File

@@ -1,26 +0,0 @@
#!/bin/sh
set -e
_adopt_conffile() {
conffile=$1
pkg=$2
[ -f ${conffile}.dpkg-bak ] || return 0
md5sum="$(md5sum ${conffile} | sed -e 's/ .*//')"
old_md5sum="$(dpkg-query -W -f='${Conffiles}' $pkg | \
sed -n -e "\' ${conffile} ' { s/ obsolete$//; s/.* //; p }")"
# On new installs, if the conffile was preserved on upgrade by
# dpkg-maintscript helper, copy it back if the new file has not been
# modified yet
if [ "$md5sum" = "$old_md5sum" ]; then
mv ${conffile}.dpkg-bak ${conffile}
fi
}
if [ "$1" = configure ] && [ -z "$2" ]; then
_adopt_conffile /etc/login.defs login.defs
fi
#DEBHELPER#

54
debian/not-installed vendored
View File

@@ -1,54 +0,0 @@
bin/groups
bin/login
# Workaround debhelper complaining about login.defs, although we install it.
etc/login.defs
etc/pam.d/chfn
etc/pam.d/chage
etc/pam.d/chpasswd
etc/pam.d/chsh
etc/pam.d/groupadd
etc/pam.d/groupdel
etc/pam.d/groupmems
etc/pam.d/groupmod
etc/pam.d/login
etc/pam.d/newusers
etc/pam.d/passwd
etc/pam.d/useradd
etc/pam.d/userdel
etc/pam.d/usermod
sbin/nologin
usr/bin/newgrp
usr/bin/faillog
usr/bin/sg
usr/lib/*/libsubid.la
usr/sbin/groupmems
usr/sbin/logoutd
usr/sbin/vigr
usr/share/man/*/man1/groups.1
usr/share/man/*/man1/login.1
usr/share/man/*/man1/logoutd.1
usr/share/man/*/man1/newgrp.1
usr/share/man/*/man1/sg.1
usr/share/man/*/man1/su.1
usr/share/man/*/man3/getspnam.3
usr/share/man/*/man3/shadow.3
usr/share/man/*/man5/faillog.5
usr/share/man/*/man5/suauth.5
usr/share/man/*/man8/faillog.8
usr/share/man/*/man8/groupmems.8
usr/share/man/*/man8/logoutd.8
usr/share/man/*/man8/nologin.8
usr/share/man/man1/groups.1
usr/share/man/man1/login.1
usr/share/man/man1/logoutd.1
usr/share/man/man1/newgrp.1
usr/share/man/man1/sg.1
usr/share/man/man1/su.1
usr/share/man/man3/getspnam.3
usr/share/man/man3/shadow.3
usr/share/man/man5/faillog.5
usr/share/man/man5/suauth.5
usr/share/man/man8/faillog.8
usr/share/man/man8/groupmems.8
usr/share/man/man8/logoutd.8
usr/share/man/man8/nologin.8

View File

@@ -1,8 +0,0 @@
# The PAM configuration file for the Shadow 'chage' service
#
# This allows root to change password aging being prompted for a password
auth sufficient pam_rootok.so
# checks for account validity
account required pam_permit.so

View File

@@ -1,16 +0,0 @@
#
# The PAM configuration file for the Shadow `chfn' service
#
# This allows root to change user infomation without being
# prompted for a password
auth sufficient pam_rootok.so
# The standard Unix authentication modules, used with
# NIS (man nsswitch) as well as normal /etc/passwd and
# /etc/shadow entries.
@include common-auth
@include common-account
@include common-session

View File

@@ -1,5 +0,0 @@
# The PAM configuration file for the Shadow 'chpasswd' service
#
@include common-password

View File

@@ -1,20 +0,0 @@
#
# The PAM configuration file for the Shadow `chsh' service
#
# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.
auth required pam_shells.so
# This allows root to change user shell without being
# prompted for a password
auth sufficient pam_rootok.so
# The standard Unix authentication modules, used with
# NIS (man nsswitch) as well as normal /etc/passwd and
# /etc/shadow entries.
@include common-auth
@include common-account
@include common-session

2
debian/passwd.dirs vendored
View File

@@ -1,2 +0,0 @@
etc/default
usr/share/lintian/overrides

View File

@@ -1 +0,0 @@
debian/passwd.expire.cron

View File

@@ -1,57 +0,0 @@
#!/usr/bin/perl
#
# passwd.expire.cron: sample expiry notification script for use as a cronjob
#
# Copyright 1999 by Ben Collins <bcollins@debian.org>, complete rights granted
# for use, distribution, modification, etc.
#
# Usage:
# edit the listed options, including the actual email, then rename to
# /etc/cron.daily/passwd
#
# If your users don't have a valid login shell (ie. they are ftp or mail
# users only), they will need some other way to change their password
# (telnet will work since login will handle password aging, or a poppasswd
# program, if they are mail users).
# <CONFIG> #
# should be same as /etc/adduser.conf
$LOW_UID=1000;
$HIGH_UID=29999;
# this let's the MTA handle the domain,
# set it manually if you want. Make sure
# you also add the @ like "\@domain.com"
$MAIL_DOM="";
# </CONFIG> #
# Set the current day reference
$curdays = int(time() / (60 * 60 * 24));
# Now go through the list
open(SH, "< /etc/shadow");
while (<SH>) {
@shent = split(':', $_);
@userent = getpwnam($shent[0]);
if ($userent[2] >= $LOW_UID && $userent[2] <= $HIGH_UID) {
if ($curdays > $shent[2] + $shent[4] - $shent[5] &&
$shent[4] != -1 && $shent[4] != 0 &&
$shent[5] != -1 && $shent[5] != 0) {
$daysleft = ($shent[2] + $shent[4]) - $curdays;
if ($daysleft == 1) { $days = "day"; } else {$days = "days"; }
if ($daysleft < 0) { next; }
open (MAIL, "| mail -s '[WARNING] account will expire in $daysleft $days' $shent[0]${MAIL_DOM}");
print MAIL <<EOF;
Your account will expire in $daysleft $days. Please change your password before
then or your account will expire
EOF
close (MAIL);
# This makes sure we also get a list of almost expired users
print "$shent[0]'s account will expire in $daysleft days\n";
}
}
@userent = getpwent();
}

View File

@@ -1,8 +0,0 @@
# The PAM configuration file for the Shadow 'groupadd' service
#
# This allows root to add groups without being prompted for a password
auth sufficient pam_rootok.so
# checks for account validity
account required pam_permit.so

View File

@@ -1,8 +0,0 @@
# The PAM configuration file for the Shadow 'groupdel' service
#
# This allows root to remove groups without being prompted for a password
auth sufficient pam_rootok.so
# checks for account validity
account required pam_permit.so

View File

@@ -1,8 +0,0 @@
# The PAM configuration file for the Shadow 'groupmod' service
#
# This allows root to modify groups without being prompted for a password
auth sufficient pam_rootok.so
# checks for account validity
account required pam_permit.so

25
debian/passwd.install vendored
View File

@@ -1,25 +0,0 @@
debian/default/useradd etc/default
debian/shadowconfig usr/sbin
usr/bin/chage
usr/bin/chfn
usr/bin/chsh
usr/bin/expiry
usr/bin/gpasswd
usr/bin/passwd
usr/sbin/chgpasswd
usr/sbin/chpasswd
usr/sbin/groupadd
usr/sbin/groupdel
usr/sbin/groupmod
usr/sbin/grpck
usr/sbin/grpconv
usr/sbin/grpunconv
usr/sbin/newusers
usr/sbin/pwck
usr/sbin/pwconv
usr/sbin/pwunconv
usr/sbin/useradd
usr/sbin/userdel
usr/sbin/usermod
usr/sbin/vipw
usr/share/locale/*/LC_MESSAGES/shadow.mo

1
debian/passwd.links vendored
View File

@@ -1 +0,0 @@
usr/sbin/vipw usr/sbin/vigr

View File

@@ -1,6 +0,0 @@
passwd: elevated-privileges 2755 root/shadow [usr/bin/chage]
passwd: elevated-privileges 4755 root/root [usr/bin/chfn]
passwd: elevated-privileges 4755 root/root [usr/bin/chsh]
passwd: elevated-privileges 2755 root/shadow [usr/bin/expiry]
passwd: elevated-privileges 4755 root/root [usr/bin/gpasswd]
passwd: elevated-privileges 4755 root/root [usr/bin/passwd]

View File

@@ -1 +0,0 @@
rm_conffile /etc/cron.daily/passwd 1:4.7-2~

View File

@@ -1,57 +0,0 @@
usr/share/man/*/man1/chage.1
usr/share/man/*/man1/chfn.1
usr/share/man/*/man1/chsh.1
usr/share/man/*/man1/expiry.1
usr/share/man/*/man1/gpasswd.1
usr/share/man/*/man1/passwd.1
usr/share/man/*/man5/gshadow.5
usr/share/man/*/man5/passwd.5
usr/share/man/*/man5/shadow.5
usr/share/man/*/man5/subgid.5
usr/share/man/*/man5/subuid.5
usr/share/man/*/man8/chgpasswd.8
usr/share/man/*/man8/chpasswd.8
usr/share/man/*/man8/groupadd.8
usr/share/man/*/man8/groupdel.8
usr/share/man/*/man8/groupmod.8
usr/share/man/*/man8/grpck.8
usr/share/man/*/man8/grpconv.8
usr/share/man/*/man8/grpunconv.8
usr/share/man/*/man8/newusers.8
usr/share/man/*/man8/pwck.8
usr/share/man/*/man8/pwconv.8
usr/share/man/*/man8/pwunconv.8
usr/share/man/*/man8/useradd.8
usr/share/man/*/man8/userdel.8
usr/share/man/*/man8/usermod.8
usr/share/man/*/man8/vigr.8
usr/share/man/*/man8/vipw.8
usr/share/man/man1/chage.1
usr/share/man/man1/chfn.1
usr/share/man/man1/chsh.1
usr/share/man/man1/expiry.1
usr/share/man/man1/gpasswd.1
usr/share/man/man1/passwd.1
usr/share/man/man5/gshadow.5
usr/share/man/man5/passwd.5
usr/share/man/man5/shadow.5
usr/share/man/man5/subgid.5
usr/share/man/man5/subuid.5
usr/share/man/man8/chgpasswd.8
usr/share/man/man8/chpasswd.8
usr/share/man/man8/groupadd.8
usr/share/man/man8/groupdel.8
usr/share/man/man8/groupmod.8
usr/share/man/man8/grpck.8
usr/share/man/man8/grpconv.8
usr/share/man/man8/grpunconv.8
usr/share/man/man8/newusers.8
usr/share/man/man8/pwck.8
usr/share/man/man8/pwconv.8
usr/share/man/man8/pwunconv.8
usr/share/man/man8/shadowconfig.8
usr/share/man/man8/useradd.8
usr/share/man/man8/userdel.8
usr/share/man/man8/usermod.8
usr/share/man/man8/vigr.8
usr/share/man/man8/vipw.8

View File

@@ -1,5 +0,0 @@
# The PAM configuration file for the Shadow 'newusers' service
#
@include common-password

View File

@@ -1,6 +0,0 @@
#
# The PAM configuration file for the Shadow `passwd' service
#
@include common-password

View File

@@ -1,30 +0,0 @@
#!/bin/sh
set -e
case "$1" in
configure)
if ! getent group shadow | grep -q '^shadow:[^:]*:42'
then
groupadd -g 42 shadow || (
cat <<EOF
Group ID 42 has been allocated for the shadow group. You have either
used 42 yourself or created a shadow group with a different ID.
Please correct this problem and reconfigure with ``dpkg --configure passwd''.
Note that both user and group IDs in the range 0-99 are globally
allocated by the Debian project and must be the same on every Debian
system.
EOF
exit 1
)
fi
;;
esac
# Run shadowconfig only on new installs
[ -z "$2" ] && shadowconfig on
#DEBHELPER#
exit 0

View File

@@ -1,8 +0,0 @@
# If a password operation is in progress and we lose power, stale lockfiles
# can be left behind. Clear them on boot.
r! /etc/gshadow.lock
r! /etc/shadow.lock
r! /etc/passwd.lock
r! /etc/group.lock
r! /etc/subuid.lock
r! /etc/subgid.lock

View File

@@ -1,8 +0,0 @@
# The PAM configuration file for the Shadow 'useradd' service
#
# This allows root to add users without being prompted for a password
auth sufficient pam_rootok.so
# checks for account validity
account required pam_permit.so

View File

@@ -1,8 +0,0 @@
# The PAM configuration file for the Shadow 'userdel' service
#
# This allows root to remove users without being prompted for a password
auth sufficient pam_rootok.so
# checks for account validity
account required pam_permit.so

View File

@@ -1,8 +0,0 @@
# The PAM configuration file for the Shadow 'groupdel' service
#
# This allows root to remove groups without being prompted for a password
auth sufficient pam_rootok.so
# checks for account validity
account required pam_permit.so

View File

@@ -1,493 +0,0 @@
From: Shadow package maintainers <pkg-shadow-devel@lists.alioth.debian.org>
Date: Sun, 7 Jul 2024 14:06:39 +0200
Subject: Adapt login.defs for Debian
Remove settings only applicable to shadow's su, which we do not use.
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 | 367 ++++-----------------------------------------------------
1 file changed, 25 insertions(+), 342 deletions(-)
diff --git a/etc/login.defs b/etc/login.defs
index 966724c..94c6af1 100644
--- a/etc/login.defs
+++ b/etc/login.defs
@@ -1,133 +1,20 @@
#
# /etc/login.defs - Configuration control definitions for the shadow package.
#
-# $Id$
-#
-
-#
-# 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.
-# pam_unix(8) enforces a 2s delay)
-#
-FAIL_DELAY 3
-
-#
-# Enable logging and display of /var/log/faillog login(1) failure info.
-#
-FAILLOG_ENAB yes
#
# Enable display of unknown usernames when login(1) failures are recorded.
#
+# WARNING: Unknown usernames may become world readable.
+# See #290803 and #298773 for details about how this could become a security
+# concern
LOG_UNKFAIL_ENAB no
-#
-# Enable logging of successful logins
-#
-LOG_OK_LOGINS no
-
-#
-# Enable logging and display of /var/log/lastlog login(1) time info.
-#
-LASTLOG_ENAB yes
-
-#
-# Limit the highest user ID number for which the lastlog entries should
-# be updated.
-#
-# No LASTLOG_UID_MAX means that there is no user ID limit for writing
-# lastlog entries.
-#
-#LASTLOG_UID_MAX
-
-#
-# Enable checking and display of mailbox status upon login.
-#
-# Disable if the shell startup files already check for mail
-# ("mailx -e" or equivalent).
-#
-MAIL_CHECK_ENAB yes
-
-#
-# Enable additional checks upon password changes.
-#
-OBSCURE_CHECKS_ENAB yes
-
-#
-# Enable checking of time restrictions specified in /etc/porttime.
-#
-PORTTIME_CHECKS_ENAB yes
-
-#
-# Enable setting of ulimit, umask, and niceness from passwd(5) gecos field.
-#
-QUOTAS_ENAB yes
-
-#
-# Enable "syslog" logging of su(1) activity - in addition to sulog file logging.
-# SYSLOG_SG_ENAB does the same for newgrp(1) and sg(1).
-#
-SYSLOG_SU_ENAB yes
-SYSLOG_SG_ENAB yes
-
-#
-# If defined, either full pathname of a file containing device names or
-# a ":" delimited list of device names. Root logins will be allowed only
-# from these devices.
-#
-CONSOLE /etc/securetty
-#CONSOLE console:tty01:tty02:tty03:tty04
-
-#
-# If defined, all su(1) activity is logged to this file.
-#
-#SULOG_FILE /var/log/sulog
-
-#
-# If defined, ":" delimited list of "message of the day" files to
-# be displayed upon login.
-#
-MOTD_FILE /etc/motd
-#MOTD_FILE /etc/motd:/usr/lib/news/news-motd
-
-#
-# If defined, this file will be output before each login(1) prompt.
-#
-#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, login(1) failures will be logged here in a utmp format.
-# last(1), when invoked as lastb(1), will read /var/log/btmp, so...
-#
-FTMP_FILE /var/log/btmp
-
-#
-# If defined, name of file whose presence will inhibit non-root
-# logins. The content of this file should be a message indicating
-# why logins are inhibited.
-#
-NOLOGINS_FILE /etc/nologin
-
-#
-# If defined, the command name to display when running "su -". For
-# example, if this is defined as "su" then ps(1) will display the
-# command as "-su". If not defined, then ps(1) will display the
-# name of the shell actually being run, e.g. something like "-sh".
-#
-SU_NAME su
-
-#
-# *REQUIRED*
+# 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.
#
-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
-#
-# If defined, either a TZ environment parameter spec or the
-# fully-rooted pathname of a file containing such a spec.
-#
-#ENV_TZ TZ=CST6CDT
-#ENV_TZ /etc/tzname
-
-#
-# If defined, an HZ environment parameter spec.
-#
-# for Linux/x86
-ENV_HZ HZ=100
-# For Linux/Alpha...
-#ENV_HZ HZ=1024
-
#
# *REQUIRED* The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
-ENV_SUPATH PATH=/sbin:/bin:/usr/sbin:/usr/bin
-ENV_PATH PATH=/bin:/usr/bin
+ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
#
-# Terminal permissions
+# Terminal permissions for terminals after login(1).
+# These settings are ignored for remote and other logins.
#
# TTYGROUP Login tty will be assigned this group ownership.
# TTYPERM Login tty will be set to this permission.
#
-# If you have a write(1) program which is "setgid" to a special group
-# which owns the terminals, define TTYGROUP as the number of such group
-# and TTYPERM as 0620. Otherwise leave TTYGROUP commented out and
-# set TTYPERM to either 622 or 600.
-#
-TTYGROUP tty
+#TTYGROUP tty
TTYPERM 0600
#
@@ -180,61 +48,35 @@ TTYPERM 0600
#
# ERASECHAR Terminal ERASE character ('\010' = backspace).
# KILLCHAR Terminal KILL character ('\025' = CTRL/U).
-# ULIMIT Default "ulimit" value.
#
# The ERASECHAR and KILLCHAR are used only on System V machines.
-# The ULIMIT is used only if the system supports it.
-# (now it works with setrlimit too; ulimit is in 512-byte units)
-#
-# Prefix these values with "0" to get octal, "0x" to get hexadecimal.
#
ERASECHAR 0177
KILLCHAR 025
-#ULIMIT 2097152
-
-# Default initial "umask" value used by login(1) on non-PAM enabled systems.
-# Default "umask" value for pam_umask(8) on PAM enabled systems.
-# UMASK is also used by useradd(8) and newusers(8) to set the mode for new
-# home directories if HOME_MODE is not set.
-# 022 is the default value, but 027, or even 077, could be considered
-# for increased privacy. There is no One True Answer here: each sysadmin
-# must make up their mind.
-UMASK 022
# HOME_MODE is used by useradd(8) and newusers(8) to set the mode for new
# home directories.
-# If HOME_MODE is not set, the value of UMASK is used to create the mode.
-#HOME_MODE 0700
+HOME_MODE 0700
#
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password changes.
-# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
-PASS_MIN_LEN 5
PASS_WARN_AGE 7
-#
-# If "yes", the user must be listed as a member of the first gid 0 group
-# in /etc/group (called "root" on most Linux systems) to be able to "su"
-# to uid 0 accounts. If the group doesn't exist or is empty, no one
-# will be able to "su" to uid 0.
-#
-SU_WHEEL_ONLY no
-
#
# Min/max values for automatic uid selection in useradd(8)
#
UID_MIN 1000
UID_MAX 60000
# System accounts
-SYS_UID_MIN 101
-SYS_UID_MAX 999
+#SYS_UID_MIN 101
+#SYS_UID_MAX 999
# Extra per user uids
SUB_UID_MIN 100000
SUB_UID_MAX 600100000
@@ -246,8 +88,8 @@ SUB_UID_COUNT 65536
GID_MIN 1000
GID_MAX 60000
# System accounts
-SYS_GID_MIN 101
-SYS_GID_MAX 999
+#SYS_GID_MIN 101
+#SYS_GID_MAX 999
# Extra per user group ids
SUB_GID_MIN 100000
SUB_GID_MAX 600100000
@@ -255,6 +97,9 @@ SUB_GID_COUNT 65536
#
# Max number of login(1) retries if password is bad
+# This will most likely be overriden by PAM, since the default pam_unix module
+# has it's own built in of 3 retries. However, this is a safe fallback in case
+# you are using an authentication module that does not enforce PAM_MAXTRIES.
#
LOGIN_RETRIES 5
@@ -263,28 +108,6 @@ LOGIN_RETRIES 5
#
LOGIN_TIMEOUT 60
-#
-# Maximum number of attempts to change password if rejected (too easy)
-#
-PASS_CHANGE_TRIES 5
-
-#
-# Warn about weak passwords (but still allow them) if you are root.
-#
-PASS_ALWAYS_WARN yes
-
-#
-# Number of significant characters in the password for crypt().
-# Default is 8, don't change unless your crypt() is better.
-# Only used for DES encryption algorithm.
-#
-#PASS_MAX_LEN 8
-
-#
-# Require password before chfn(1)/chsh(1) can make any changes.
-#
-CHFN_AUTH yes
-
#
# Which fields may be changed by regular users using chfn(1) - use
# any combination of letters "frwh" (full name, room number, work
@@ -294,29 +117,6 @@ CHFN_AUTH yes
CHFN_RESTRICT rwh
#
-# Password prompt (%s will be replaced by user name).
-#
-# XXX - it doesn't work correctly yet, for now leave it commented out
-# to use the default which is just "Password: ".
-#LOGIN_STRING "%s's Password: "
-
-#
-# Only works if compiled with MD5_CRYPT defined:
-# If set to "yes", new passwords will be encrypted using the MD5-based
-# algorithm compatible with the one used by recent releases of FreeBSD.
-# It supports passwords of unlimited length and longer salt strings.
-# 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
-# the PAM modules configuration.
-#
-# This variable is deprecated. You should use ENCRYPT_METHOD instead.
-#
-#MD5_CRYPT_ENAB no
-
-#
-# Only works if compiled with ENCRYPTMETHOD_SELECT defined:
# 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 +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: It is recommended to use a value consistent with
# the PAM modules configuration.
#
-#ENCRYPT_METHOD DES
-
-#
-# Only works if ENCRYPT_METHOD is set to SHA256 or SHA512.
-#
-# Define the number of SHA rounds.
-# With a lot of rounds, it is more difficult to brute-force the password.
-# However, more CPU resources will be needed to authenticate users if
-# this value is increased.
-#
-# If not specified, the libc will choose the default number of rounds (5000),
-# which is orders of magnitude too low for modern hardware.
-# The values must be within the 1000-999999999 range.
-# If only one of the MIN or MAX values is set, then this value will be used.
-# If MIN > MAX, the highest value will be used.
-#
-#SHA_CRYPT_MIN_ROUNDS 5000
-#SHA_CRYPT_MAX_ROUNDS 5000
-
-#
-# Only works if ENCRYPT_METHOD is set to BCRYPT.
-#
-# Define the number of BCRYPT rounds.
-# With a lot of rounds, it is more difficult to brute-force the password.
-# However, more CPU resources will be needed to authenticate users if
-# this value is increased.
-#
-# If not specified, 13 rounds will be attempted.
-# If only one of the MIN or MAX values is set, then this value will be used.
-# If MIN > MAX, the highest value will be used.
-#
-#BCRYPT_MIN_ROUNDS 13
-#BCRYPT_MAX_ROUNDS 13
-
-#
-# Only works if ENCRYPT_METHOD is set to YESCRYPT.
-#
-# Define the YESCRYPT cost factor.
-# With a higher cost factor, it is more difficult to brute-force the password.
-# However, more CPU time and more memory will be needed to authenticate users
-# if this value is increased.
-#
-# If not specified, a cost factor of 5 will be used.
-# The value must be within the 1-11 range.
-#
-#YESCRYPT_COST_FACTOR 5
-
-#
-# List of groups to add to the user's supplementary group set
-# when logging in from the console (as determined by the CONSOLE
-# setting). Default is none.
-#
-# Use with caution - it is possible for users to gain permanent
-# access to these groups, even when not logged in from the console.
-# How to do it is left as an exercise for the reader...
-#
-#CONSOLE_GROUPS floppy:audio:cdrom
+ENCRYPT_METHOD YESCRYPT
#
# Should login be allowed if we can't cd to the home directory?
@@ -402,72 +146,11 @@ DEFAULT_HOME yes
NONEXISTENT /nonexistent
#
-# If this file exists and is readable, login environment will be
-# read from it. Every line should be in the form name=value.
+# If set to yes, userdel(8) will remove the user's group if it contains no more
+# members, and useradd(8) will create by default a group with the name of the
+# user.
#
-ENVIRON_FILE /etc/environment
-
-#
-# If defined, this command is run when removing a user.
-# It should remove any at/cron/print jobs etc. owned by
-# the user to be removed (passed as the first argument).
-#
-#USERDEL_CMD /usr/sbin/userdel_local
-
-#
-# Enable setting of the umask group bits to be the same as owner bits
-# (examples: 022 -> 002, 077 -> 007) for non-root users, if the uid is
-# the same as gid, and username is the same as the primary group name.
-#
-# This also enables userdel(8) to remove user groups if no members exist.
+# Other former uses of this variable are not used in PAM environments, such as
+# Debian.
#
USERGROUPS_ENAB yes
-
-#
-# If set to a non-zero number, the shadow utilities will make sure that
-# groups never have more than this number of users on one line.
-# This permits to support split groups (groups split into multiple lines,
-# with the same group ID, to avoid limitation of the line length in the
-# group file).
-#
-# 0 is the default value and disables this feature.
-#
-#MAX_MEMBERS_PER_GROUP 0
-
-#
-# If useradd(8) should create home directories for users by default (non
-# system users only).
-# This option is overridden with the -M or -m flags on the useradd(8)
-# command-line.
-#
-#CREATE_HOME yes
-
-#
-# Force use shadow, even if shadow passwd & shadow group files are
-# missing.
-#
-#FORCE_SHADOW yes
-
-#
-# Allow newuidmap and newgidmap when running under an alternative
-# primary group.
-#
-#GRANT_AUX_GROUP_SUBIDS yes
-
-#
-# Prevents an empty password field to be interpreted as "no authentication
-# required".
-# Set to "yes" to prevent for all accounts
-# Set to "superuser" to prevent for UID 0 / root (default)
-# Set to "no" to not prevent for any account (dangerous, historical default)
-PREVENT_NO_AUTH superuser
-
-#
-# Select the HMAC cryptography algorithm.
-# 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
-# that are available in your system.
-#
-#HMAC_CRYPTO_ALGO SHA512

View File

@@ -1,65 +0,0 @@
From: Shadow package maintainers <pkg-shadow-devel@lists.alioth.debian.org>
Date: Sat, 22 Jun 2024 17:39:41 +0200
Subject: Document the shadowconfig utility
Status wrt upstream: The shadowconfig utility is Debian-specific.
The man page is Debian-specific, but it used to be distributed by
upstream.
---
man/Makefile.am | 1 +
man/man8/shadowconfig.8 | 34 ++++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+)
create mode 100644 man/man8/shadowconfig.8
diff --git a/man/Makefile.am b/man/Makefile.am
index f34ed7a..2523e84 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -36,6 +36,7 @@ man_MANS = \
man8/pwck.8 \
man8/pwconv.8 \
man8/pwunconv.8 \
+ man8/shadowconfig.8 \
man1/sg.1 \
man3/shadow.3 \
man5/shadow.5 \
diff --git a/man/man8/shadowconfig.8 b/man/man8/shadowconfig.8
new file mode 100644
index 0000000..a463a92
--- /dev/null
+++ b/man/man8/shadowconfig.8
@@ -0,0 +1,34 @@
+.TH shadowconfig 8 2025-02-17 "Debian shadow-utils"
+.SH Name
+shadowconfig \- turn shadow passwords on
+.
+.
+.SH Synopsis
+.SY shadowconfig on
+.YS
+.
+.
+.SH Description
+.I shadowconfig\ on
+will turn shadow passwords on.
+.
+.
+.SH Errors
+.B shadowconfig
+will print an error message and exit with a nonzero code
+if it finds anything awry.
+If that happens,
+you should correct the error and run it again.
+Turning shadow passwords on when they are already on
+is harmless.
+.
+.
+.SH Caveats
+Turning shadow passwords off using shadowconfig
+is not supported anymore.
+.
+.
+.SH See also
+Read
+.I /usr/share/doc/passwd/README.Debian
+for a brief introduction to shadow passwords and related features.

View File

@@ -1,37 +0,0 @@
From: Chris Hofstaedtler <zeha@debian.org>
Date: Sun, 16 Mar 2025 13:29:45 +0100
Subject: Exclude Debian-globally allocated UIDs from sys_uid range warning
Bug: http://bugs.debian.org/1100563
---
src/useradd.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/useradd.c b/src/useradd.c
index b3ab1c4..bbc9859 100644
--- a/src/useradd.c
+++ b/src/useradd.c
@@ -2406,14 +2406,21 @@ static void create_mail(const struct option_flags *flags)
#endif
}
+/* See Debian Policy 9.2.2 "UID and GID classes"
+ * https://www.debian.org/doc/debian-policy/ch-opersys.html#uid-and-gid-classes
+ */
+#define DEBIAN_GLOBAL_UID_MIN ((uid_t)60000)
+#define DEBIAN_GLOBAL_UID_MAX ((uid_t)64999)
+
static void check_uid_range(int rflg, uid_t user_id)
{
uid_t uid_min ;
uid_t uid_max ;
if (rflg) {
uid_max = getdef_ulong("SYS_UID_MAX",getdef_ulong("UID_MIN",1000UL)-1);
- if (user_id > uid_max) {
- fprintf(stderr, _("%s warning: %s's uid %d is greater than SYS_UID_MAX %d\n"), Prog, user_name, user_id, uid_max);
+ if (user_id > uid_max
+ && (!(user_id >= DEBIAN_GLOBAL_UID_MIN && user_id <= DEBIAN_GLOBAL_UID_MAX))) {
+ fprintf(stderr, _("%s warning: %s's uid %d is greater than SYS_UID_MAX %d\n"), Prog, user_name, user_id, uid_max);
}
}else{
uid_min = getdef_ulong("UID_MIN", 1000UL);

View File

@@ -1,52 +0,0 @@
From: Balint Reczey <balint@balintreczey.hu>
Date: Sat, 22 Jun 2024 17:39:41 +0200
Subject: Keep using Debian's adduser defaults
Bug: https://github.com/shadow-maint/shadow/issues/501
Bug-Debian: https://bugs.debian.org/1004710
Forwarded: not-needed
Upstream's bbf4b79bc49fd1826eb41f6629669ef0b647267b commit
in 4.9 merged those values from upstream's default configuration file
which is not shipped in Debian.
This patch keeps the program's compiled in defaults in sync with the
configuration files shipped in Debian (debian/default/useradd).
---
man/useradd.8.xml | 2 +-
src/useradd.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/man/useradd.8.xml b/man/useradd.8.xml
index e6db7f6..2e83b4f 100644
--- a/man/useradd.8.xml
+++ b/man/useradd.8.xml
@@ -262,7 +262,7 @@
command line), useradd will set the primary group of the new
user to the value specified by the <option>GROUP</option>
variable in <filename>/etc/default/useradd</filename>, or
- 1000 by default.
+ 100 by default.
</para>
</listitem>
</varlistentry>
diff --git a/src/useradd.c b/src/useradd.c
index 899efe3..b3ab1c4 100644
--- a/src/useradd.c
+++ b/src/useradd.c
@@ -106,14 +106,14 @@ static const char Prog[] = "useradd";
/*
* These defaults are used if there is no defaults file.
*/
-static gid_t def_group = 1000;
+static gid_t def_group = 100;
static const char *def_groups = "";
static const char *def_gname = "other";
static const char *def_home = "/home";
static const char *def_shell = "/bin/bash";
static const char *def_template = SKEL_DIR;
static const char *def_usrtemplate = USRSKELDIR;
-static const char *def_create_mail_spool = "yes";
+static const char *def_create_mail_spool = "no";
static const char *def_log_init = "yes";
static long def_inactive = -1;

View File

@@ -1,46 +0,0 @@
From: Shadow package maintainers <pkg-shadow-devel@lists.alioth.debian.org>
Date: Sat, 22 Jun 2024 17:39:41 +0200
Subject: Recommend using adduser and deluser
Fixes: #406046
Status wrt upstream: Debian specific patch.
---
man/useradd.8.xml | 6 ++++++
man/userdel.8.xml | 6 ++++++
2 files changed, 12 insertions(+)
diff --git a/man/useradd.8.xml b/man/useradd.8.xml
index 2e83b4f..67c469a 100644
--- a/man/useradd.8.xml
+++ b/man/useradd.8.xml
@@ -82,6 +82,12 @@
<refsect1 id='description'>
<title>DESCRIPTION</title>
+ <para>
+ <command>useradd</command> is a low level utility for adding
+ users. On Debian, administrators should usually use
+ <citerefentry><refentrytitle>adduser</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> instead.
+ </para>
<para>
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 e10a6af..863d3f1 100644
--- a/man/userdel.8.xml
+++ b/man/userdel.8.xml
@@ -58,6 +58,12 @@
<refsect1 id='description'>
<title>DESCRIPTION</title>
+ <para>
+ <command>userdel</command> is a low level utility for removing
+ users. On Debian, administrators should usually use
+ <citerefentry><refentrytitle>deluser</refentrytitle>
+ <manvolnum>8</manvolnum></citerefentry> instead.
+ </para>
<para>
The <command>userdel</command> command modifies the system account
files, deleting all entries that refer to the user name <emphasis

View File

@@ -1,75 +0,0 @@
From: Shadow package maintainers <pkg-shadow-devel@lists.alioth.debian.org>
Date: Sat, 22 Jun 2024 17:39:41 +0200
Subject: Set group and mode for [g]shadow files
Set group 'shadow' and mode 0400.
Fixes: #166793
---
lib/commonio.c | 12 ++++++++++++
lib/sgroupio.c | 2 +-
lib/shadowio.c | 2 +-
3 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/lib/commonio.c b/lib/commonio.c
index 2c6a1a2..860efb9 100644
--- a/lib/commonio.c
+++ b/lib/commonio.c
@@ -22,6 +22,7 @@
#include <sys/stat.h>
#include <stdlib.h>
#include <utime.h>
+#include <grp.h>
#include "alloc/malloc.h"
#include "atoi/getnum.h"
@@ -931,12 +932,23 @@ commonio_close(struct commonio_db *db, MAYBE_UNUSED bool process_selinux)
if (errors)
goto fail;
} else {
+ struct group *grp;
/*
* Default permissions for new [g]shadow files.
*/
sb.st_mode = db->st_mode;
sb.st_uid = db->st_uid;
sb.st_gid = db->st_gid;
+
+ /*
+ * Try to retrieve the shadow's GID, and fall back to GID 0.
+ */
+ if (sb.st_gid == 0) {
+ if ((grp = getgrnam("shadow")) != NULL)
+ sb.st_gid = grp->gr_gid;
+ else
+ sb.st_gid = 0;
+ }
}
if (stprintf_a(buf, "%s+", db->filename) == -1)
diff --git a/lib/sgroupio.c b/lib/sgroupio.c
index ad3adc3..527f5be 100644
--- a/lib/sgroupio.c
+++ b/lib/sgroupio.c
@@ -213,7 +213,7 @@ static struct commonio_db gshadow_db = {
#ifdef WITH_SELINUX
NULL, /* scontext */
#endif
- 0400, /* st_mode */
+ 0440, /* st_mode */
0, /* st_uid */
0, /* st_gid */
NULL, /* head */
diff --git a/lib/shadowio.c b/lib/shadowio.c
index bf87503..be917ac 100644
--- a/lib/shadowio.c
+++ b/lib/shadowio.c
@@ -87,7 +87,7 @@ static struct commonio_db shadow_db = {
#ifdef WITH_SELINUX
NULL, /* scontext */
#endif /* WITH_SELINUX */
- 0400, /* st_mode */
+ 0440, /* st_mode */
0, /* st_uid */
0, /* st_gid */
NULL, /* head */

View File

@@ -1,561 +0,0 @@
From: Chris Hofstaedtler <zeha@debian.org>
Date: Tue, 6 Aug 2024 00:27:13 +0200
Subject: Stop building programs we do not install
---
man/Makefile.am | 15 ---------------
man/cs/Makefile.am | 9 ---------
man/da/Makefile.am | 3 ---
man/de/Makefile.am | 10 ----------
man/fr/Makefile.am | 10 ----------
man/hu/Makefile.am | 3 ---
man/id/Makefile.am | 1 -
man/it/Makefile.am | 10 ----------
man/ja/Makefile.am | 8 --------
man/ko/Makefile.am | 2 --
man/pl/Makefile.am | 6 ------
man/ru/Makefile.am | 9 ---------
man/sv/Makefile.am | 8 --------
man/tr/Makefile.am | 2 --
man/uk/Makefile.am | 9 ---------
man/zh_CN/Makefile.am | 10 ----------
man/zh_TW/Makefile.am | 2 --
src/Makefile.am | 7 +++----
18 files changed, 3 insertions(+), 121 deletions(-)
diff --git a/man/Makefile.am b/man/Makefile.am
index 2523e84..05a0c86 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -13,8 +13,6 @@ man_MANS = \
man8/chpasswd.8 \
man1/chsh.1 \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man3/getspnam.3 \
man1/gpasswd.1 \
man8/groupadd.8 \
@@ -25,19 +23,14 @@ man_MANS = \
man8/grpconv.8 \
man8/grpunconv.8 \
man5/gshadow.5 \
- man1/login.1 \
man5/login.defs.5 \
- man8/logoutd.8 \
- man1/newgrp.1 \
man8/newusers.8 \
- man8/nologin.8 \
man1/passwd.1 \
man5/passwd.5 \
man8/pwck.8 \
man8/pwconv.8 \
man8/pwunconv.8 \
man8/shadowconfig.8 \
- man1/sg.1 \
man3/shadow.3 \
man5/shadow.5 \
man8/useradd.8 \
@@ -82,8 +75,6 @@ man_XMANS = \
chpasswd.8.xml \
chsh.1.xml \
expiry.1.xml \
- faillog.5.xml \
- faillog.8.xml \
getsubids.1.xml \
gpasswd.1.xml \
groupadd.8.xml \
@@ -96,12 +87,9 @@ man_XMANS = \
login.1.xml \
login.access.5.xml \
login.defs.5.xml \
- logoutd.8.xml \
newgidmap.1.xml \
- newgrp.1.xml \
newuidmap.1.xml \
newusers.8.xml \
- nologin.8.xml \
passwd.1.xml \
passwd.5.xml \
porttime.5.xml \
@@ -109,9 +97,6 @@ man_XMANS = \
pwconv.8.xml \
shadow.3.xml \
shadow.5.xml \
- sg.1.xml \
- su.1.xml \
- suauth.5.xml \
subgid.5.xml \
subuid.5.xml \
useradd.8.xml \
diff --git a/man/cs/Makefile.am b/man/cs/Makefile.am
index 45aec38..e1f9f87 100644
--- a/man/cs/Makefile.am
+++ b/man/cs/Makefile.am
@@ -3,25 +3,16 @@ mandir = @mandir@/cs
man_MANS = \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man1/gpasswd.1 \
man8/groupadd.8 \
man8/groupdel.8 \
man8/groupmod.8 \
man8/grpck.8 \
man5/gshadow.5 \
- man8/nologin.8 \
man5/passwd.5 \
man5/shadow.5 \
- man1/su.1 \
man8/vipw.8
if ENABLE_LASTLOG
man_MANS += man8/lastlog.8
endif
-
-EXTRA_DIST = $(man_MANS) \
- man8/groupmems.8 \
- man8/logoutd.8
-
diff --git a/man/da/Makefile.am b/man/da/Makefile.am
index c61b787..12234cb 100644
--- a/man/da/Makefile.am
+++ b/man/da/Makefile.am
@@ -6,10 +6,7 @@ man_MANS = \
man1/chfn.1 \
man8/groupdel.8 \
man5/gshadow.5 \
- man8/logoutd.8 \
man1/newgrp.1 \
- man8/nologin.8 \
- man1/sg.1 \
man8/vigr.8 \
man8/vipw.8
diff --git a/man/de/Makefile.am b/man/de/Makefile.am
index d3a6d6c..59602aa 100644
--- a/man/de/Makefile.am
+++ b/man/de/Makefile.am
@@ -8,34 +8,24 @@ man_MANS = \
man8/chpasswd.8 \
man1/chsh.1 \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man3/getspnam.3 \
man1/gpasswd.1 \
man8/groupadd.8 \
man8/groupdel.8 \
- man8/groupmems.8 \
man8/groupmod.8 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
man5/gshadow.5 \
- man1/login.1 \
man5/login.defs.5 \
- man8/logoutd.8 \
- man1/newgrp.1 \
man8/newusers.8 \
- man8/nologin.8 \
man1/passwd.1 \
man5/passwd.5 \
man8/pwck.8 \
man8/pwconv.8 \
man8/pwunconv.8 \
- man1/sg.1 \
man3/shadow.3 \
man5/shadow.5 \
- man1/su.1 \
- man5/suauth.5 \
man8/useradd.8 \
man8/userdel.8 \
man8/usermod.8 \
diff --git a/man/fr/Makefile.am b/man/fr/Makefile.am
index 2365e23..6cbaadc 100644
--- a/man/fr/Makefile.am
+++ b/man/fr/Makefile.am
@@ -8,34 +8,24 @@ man_MANS = \
man8/chpasswd.8 \
man1/chsh.1 \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man3/getspnam.3 \
man1/gpasswd.1 \
man8/groupadd.8 \
man8/groupdel.8 \
- man8/groupmems.8 \
man8/groupmod.8 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
man5/gshadow.5 \
- man1/login.1 \
man5/login.defs.5 \
- man8/logoutd.8 \
- man1/newgrp.1 \
man8/newusers.8 \
- man8/nologin.8 \
man1/passwd.1 \
man5/passwd.5 \
man8/pwck.8 \
man8/pwconv.8 \
man8/pwunconv.8 \
- man1/sg.1 \
man3/shadow.3 \
man5/shadow.5 \
- man1/su.1 \
- man5/suauth.5 \
man8/useradd.8 \
man8/userdel.8 \
man8/usermod.8 \
diff --git a/man/hu/Makefile.am b/man/hu/Makefile.am
index 6bf68e8..2930da3 100644
--- a/man/hu/Makefile.am
+++ b/man/hu/Makefile.am
@@ -4,11 +4,8 @@ mandir = @mandir@/hu
man_MANS = \
man1/chsh.1 \
man1/gpasswd.1 \
- man1/login.1 \
- man1/newgrp.1 \
man1/passwd.1 \
man5/passwd.5 \
- man1/sg.1 \
man1/su.1
if ENABLE_LASTLOG
diff --git a/man/id/Makefile.am b/man/id/Makefile.am
index 21f3dbe..566fa8b 100644
--- a/man/id/Makefile.am
+++ b/man/id/Makefile.am
@@ -3,7 +3,6 @@ mandir = @mandir@/id
man_MANS = \
man1/chsh.1 \
- man1/login.1 \
man8/useradd.8
EXTRA_DIST = $(man_MANS)
diff --git a/man/it/Makefile.am b/man/it/Makefile.am
index 736576c..3312232 100644
--- a/man/it/Makefile.am
+++ b/man/it/Makefile.am
@@ -8,34 +8,24 @@ man_MANS = \
man8/chpasswd.8 \
man1/chsh.1 \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man3/getspnam.3 \
man1/gpasswd.1 \
man8/groupadd.8 \
man8/groupdel.8 \
- man8/groupmems.8 \
man8/groupmod.8 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
man5/gshadow.5 \
- man1/login.1 \
man5/login.defs.5 \
- man8/logoutd.8 \
- man1/newgrp.1 \
man8/newusers.8 \
- man8/nologin.8 \
man1/passwd.1 \
man5/passwd.5 \
man8/pwck.8 \
man8/pwconv.8 \
man8/pwunconv.8 \
- man1/sg.1 \
man3/shadow.3 \
man5/shadow.5 \
- man1/su.1 \
- man5/suauth.5 \
man8/useradd.8 \
man8/userdel.8 \
man8/usermod.8 \
diff --git a/man/ja/Makefile.am b/man/ja/Makefile.am
index b759726..1e22da2 100644
--- a/man/ja/Makefile.am
+++ b/man/ja/Makefile.am
@@ -7,8 +7,6 @@ man_MANS = \
man8/chpasswd.8 \
man1/chsh.1 \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man1/gpasswd.1 \
man8/groupadd.8 \
man8/groupdel.8 \
@@ -16,20 +14,14 @@ man_MANS = \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
- man1/login.1 \
man5/login.defs.5 \
- man8/logoutd.8 \
- man1/newgrp.1 \
man8/newusers.8 \
man1/passwd.1 \
man5/passwd.5 \
man8/pwck.8 \
man8/pwconv.8 \
man8/pwunconv.8 \
- man1/sg.1 \
man5/shadow.5 \
- man1/su.1 \
- man5/suauth.5 \
man8/useradd.8 \
man8/userdel.8 \
man8/usermod.8 \
diff --git a/man/ko/Makefile.am b/man/ko/Makefile.am
index 4f73651..0f17a17 100644
--- a/man/ko/Makefile.am
+++ b/man/ko/Makefile.am
@@ -4,9 +4,7 @@ mandir = @mandir@/ko
man_MANS = \
man1/chfn.1 \
man1/chsh.1 \
- man1/login.1 \
man5/passwd.5 \
- man1/su.1 \
man8/vigr.8 \
man8/vipw.8
# newgrp.1 must be updated
diff --git a/man/pl/Makefile.am b/man/pl/Makefile.am
index 2a015f3..02f4533 100644
--- a/man/pl/Makefile.am
+++ b/man/pl/Makefile.am
@@ -6,17 +6,11 @@ man_MANS = \
man1/chage.1 \
man1/chsh.1 \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man3/getspnam.3 \
man8/groupadd.8 \
man8/groupdel.8 \
- man8/groupmems.8 \
man8/groupmod.8 \
man8/grpck.8 \
- man8/logoutd.8 \
- man1/newgrp.1 \
- man1/sg.1 \
man3/shadow.3 \
man8/userdel.8 \
man8/usermod.8 \
diff --git a/man/ru/Makefile.am b/man/ru/Makefile.am
index 845a603..9afcb22 100644
--- a/man/ru/Makefile.am
+++ b/man/ru/Makefile.am
@@ -8,22 +8,16 @@ man_MANS = \
man8/chpasswd.8 \
man1/chsh.1 \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man3/getspnam.3 \
man1/gpasswd.1 \
man8/groupadd.8 \
man8/groupdel.8 \
- man8/groupmems.8 \
man8/groupmod.8 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
man5/gshadow.5 \
- man1/login.1 \
man5/login.defs.5 \
- man8/logoutd.8 \
- man1/newgrp.1 \
man8/newusers.8 \
man8/nologin.8 \
man1/passwd.1 \
@@ -31,11 +25,8 @@ man_MANS = \
man8/pwck.8 \
man8/pwconv.8 \
man8/pwunconv.8 \
- man1/sg.1 \
man3/shadow.3 \
man5/shadow.5 \
- man1/su.1 \
- man5/suauth.5 \
man8/useradd.8 \
man8/userdel.8 \
man8/usermod.8 \
diff --git a/man/sv/Makefile.am b/man/sv/Makefile.am
index 1918af7..d572c36 100644
--- a/man/sv/Makefile.am
+++ b/man/sv/Makefile.am
@@ -5,24 +5,16 @@ man_MANS = \
man1/chage.1 \
man1/chsh.1 \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man3/getspnam.3 \
man8/groupadd.8 \
man8/groupdel.8 \
- man8/groupmems.8 \
man8/groupmod.8 \
man8/grpck.8 \
man5/gshadow.5 \
- man8/logoutd.8 \
- man1/newgrp.1 \
- man8/nologin.8 \
man1/passwd.1 \
man5/passwd.5 \
man8/pwck.8 \
- man1/sg.1 \
man3/shadow.3 \
- man5/suauth.5 \
man8/userdel.8 \
man8/vigr.8 \
man8/vipw.8
diff --git a/man/tr/Makefile.am b/man/tr/Makefile.am
index 8d8b916..8b2aa2d 100644
--- a/man/tr/Makefile.am
+++ b/man/tr/Makefile.am
@@ -6,11 +6,9 @@ man_MANS = \
man8/groupadd.8 \
man8/groupdel.8 \
man8/groupmod.8 \
- man1/login.1 \
man1/passwd.1 \
man5/passwd.5 \
man5/shadow.5 \
- man1/su.1 \
man8/useradd.8 \
man8/userdel.8 \
man8/usermod.8
diff --git a/man/uk/Makefile.am b/man/uk/Makefile.am
index a0f106d..f069eea 100644
--- a/man/uk/Makefile.am
+++ b/man/uk/Makefile.am
@@ -8,34 +8,25 @@ man_MANS = \
man8/chpasswd.8 \
man1/chsh.1 \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man3/getspnam.3 \
man1/gpasswd.1 \
man8/groupadd.8 \
man8/groupdel.8 \
- man8/groupmems.8 \
man8/groupmod.8 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
man5/gshadow.5 \
- man1/login.1 \
man5/login.defs.5 \
- man8/logoutd.8 \
man1/newgrp.1 \
man8/newusers.8 \
- man8/nologin.8 \
man1/passwd.1 \
man5/passwd.5 \
man8/pwck.8 \
man8/pwconv.8 \
man8/pwunconv.8 \
- man1/sg.1 \
man3/shadow.3 \
man5/shadow.5 \
- man1/su.1 \
- man5/suauth.5 \
man8/useradd.8 \
man8/userdel.8 \
man8/usermod.8 \
diff --git a/man/zh_CN/Makefile.am b/man/zh_CN/Makefile.am
index 59d1072..9402a9e 100644
--- a/man/zh_CN/Makefile.am
+++ b/man/zh_CN/Makefile.am
@@ -8,34 +8,24 @@ man_MANS = \
man8/chpasswd.8 \
man1/chsh.1 \
man1/expiry.1 \
- man5/faillog.5 \
- man8/faillog.8 \
man3/getspnam.3 \
man1/gpasswd.1 \
man8/groupadd.8 \
man8/groupdel.8 \
- man8/groupmems.8 \
man8/groupmod.8 \
man8/grpck.8 \
man8/grpconv.8 \
man8/grpunconv.8 \
man5/gshadow.5 \
- man1/login.1 \
man5/login.defs.5 \
- man8/logoutd.8 \
- man1/newgrp.1 \
man8/newusers.8 \
- man8/nologin.8 \
man1/passwd.1 \
man5/passwd.5 \
man8/pwck.8 \
man8/pwconv.8 \
man8/pwunconv.8 \
- man1/sg.1 \
man3/shadow.3 \
man5/shadow.5 \
- man1/su.1 \
- man5/suauth.5 \
man8/useradd.8 \
man8/userdel.8 \
man8/usermod.8 \
diff --git a/man/zh_TW/Makefile.am b/man/zh_TW/Makefile.am
index c36ed2c..6fb6a15 100644
--- a/man/zh_TW/Makefile.am
+++ b/man/zh_TW/Makefile.am
@@ -5,12 +5,10 @@ man_MANS = \
man1/chfn.1 \
man1/chsh.1 \
man8/chpasswd.8 \
- man1/newgrp.1 \
man8/groupadd.8 \
man8/groupdel.8 \
man8/groupmod.8 \
man5/passwd.5 \
- man1/su.1 \
man8/useradd.8 \
man8/userdel.8 \
man8/usermod.8
diff --git a/src/Makefile.am b/src/Makefile.am
index 6981815..5ca78ed 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -26,8 +26,8 @@ AM_CFLAGS = $(LIBBSD_CFLAGS)
# and installation would be much simpler (just two directories,
# $prefix/bin and $prefix/sbin, no install-data hacks...)
-bin_PROGRAMS = login
-sbin_PROGRAMS = nologin
+bin_PROGRAMS =
+sbin_PROGRAMS =
ubin_PROGRAMS = faillog chage chfn chsh expiry gpasswd newgrp passwd
if ENABLE_SUBIDS
ubin_PROGRAMS += newgidmap newuidmap
@@ -48,7 +48,6 @@ usbin_PROGRAMS = \
grpck \
grpconv \
grpunconv \
- logoutd \
newusers \
pwck \
pwconv \
@@ -59,7 +58,7 @@ usbin_PROGRAMS = \
vipw
# sulogin from sysvinit
-noinst_PROGRAMS = sulogin
+noinst_PROGRAMS =
suidusbins =
suidbins =

View File

@@ -1,104 +0,0 @@
From: Chris Hofstaedtler <zeha@debian.org>
Date: Mon, 17 Feb 2025 18:17:15 +0100
Subject: Warn when --badname (and variants) are given
Upstream PR 1158 will remove them, probably in the forky timeframe.
---
src/newusers.c | 5 ++++-
src/pwck.c | 5 ++++-
src/useradd.c | 5 ++++-
src/usermod.c | 5 ++++-
4 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/src/newusers.c b/src/newusers.c
index e9353fd..9054373 100644
--- a/src/newusers.c
+++ b/src/newusers.c
@@ -135,7 +135,7 @@ static void usage (int status)
"\n"
"Options:\n"),
Prog);
- (void) fputs (_(" -b, --badname allow bad names\n"), usageout);
+ (void) fputs (_(" -b, --badname allow bad names (DEPRECATED)\n"), usageout);
#ifndef USE_PAM
(void) fprintf (usageout,
_(" -c, --crypt-method METHOD the crypt method (one of %s)\n"),
@@ -668,6 +668,9 @@ static void process_flags (int argc, char **argv, struct option_flags *flags)
switch (c) {
case 'b':
allow_bad_names = true;
+ fprintf (stderr,
+ _("%s: WARNING: -b and --badname are deprecated and will be removed\n"),
+ Prog);
break;
#ifndef USE_PAM
case 'c':
diff --git a/src/pwck.c b/src/pwck.c
index c35f03e..81f4ccd 100644
--- a/src/pwck.c
+++ b/src/pwck.c
@@ -139,7 +139,7 @@ usage (int status)
"Options:\n"),
Prog);
}
- (void) fputs (_(" -b, --badname allow bad names\n"), usageout);
+ (void) fputs (_(" -b, --badname allow bad names (DEPRECATED)\n"), usageout);
(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"
@@ -181,6 +181,9 @@ static void process_flags (int argc, char **argv, struct option_flags *flags)
switch (c) {
case 'b':
allow_bad_names = true;
+ fprintf (stderr,
+ _("%s: WARNING: --badname is deprecated and will be removed\n"),
+ Prog);
break;
case 'h':
usage (E_SUCCESS);
diff --git a/src/useradd.c b/src/useradd.c
index bbc9859..5446f35 100644
--- a/src/useradd.c
+++ b/src/useradd.c
@@ -877,7 +877,7 @@ static void usage (int status)
"\n"
"Options:\n"),
Prog, Prog, Prog);
- (void) fputs (_(" --badname do not check for bad names\n"), usageout);
+ (void) fputs (_(" --badname do not check for bad names (DEPRECATED)\n"), usageout);
(void) fputs (_(" -b, --base-dir BASE_DIR base directory for the home directory of the\n"
" new account\n"), usageout);
#ifdef WITH_BTRFS
@@ -1200,6 +1200,9 @@ static void process_flags (int argc, char **argv, struct option_flags *flags)
break;
case 201:
allow_bad_names = true;
+ fprintf (stderr,
+ _("%s: WARNING: --badname is deprecated and will be removed\n"),
+ Prog);
break;
case 'c':
if (!VALID (optarg)) {
diff --git a/src/usermod.c b/src/usermod.c
index e8c9da6..dc88776 100644
--- a/src/usermod.c
+++ b/src/usermod.c
@@ -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);
- (void) fputs (_(" -b, --badname allow bad names\n"), usageout);
+ (void) fputs (_(" -b, --badname allow bad names (DEPRECATED)\n"), usageout);
(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);
@@ -1062,6 +1062,9 @@ process_flags(int argc, char **argv, struct option_flags *flags)
break;
case 'b':
allow_bad_names = true;
+ fprintf (stderr,
+ _("%s: WARNING: -b, --badname and --badnames are deprecated and will be removed\n"),
+ Prog);
break;
case 'c':
if (!VALID (optarg)) {

View File

@@ -1,34 +0,0 @@
From: Chris Hofstaedtler <zeha@debian.org>
Date: Wed, 7 Jan 2026 11:07:34 +0100
Subject: chpasswd: Disable broken hash check
See Debian bug #1124835.
---
src/chpasswd.c | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/src/chpasswd.c b/src/chpasswd.c
index ea96dc7..8d24ae6 100644
--- a/src/chpasswd.c
+++ b/src/chpasswd.c
@@ -574,20 +574,6 @@ int main (int argc, char **argv)
#endif /* USE_PAM */
{
- /*
- * Prevent adding a non valid hash to /etc/shadow and
- * potentialy lock account
- */
-
- if (eflg) {
- if (!is_valid_hash(newpwd)) {
- fprintf (stderr,
- _("%s: (line %jd, user %s) invalid password hash\n"),
- Prog, line, name);
- errors = true;
- continue;
- }
- }
const struct spwd *sp;
struct spwd newsp;
const struct passwd *pw;

View File

@@ -1,23 +0,0 @@
From: Chris Hofstaedtler <zeha@debian.org>
Date: Mon, 24 Feb 2025 23:24:41 +0100
Subject: configure.ac: align exec_prefix with prefix
Hopefully upstream will fix this one day.
Reported as https://github.com/shadow-maint/shadow/issues/1229
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index b3dd34d..bbda154 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@ AC_SUBST([LIBSUBID_ABI], [libsubid_abi])
dnl Some hacks...
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

View File

@@ -1,89 +0,0 @@
From: Serge Hallyn <serge@hallyn.com>
Date: Thu, 27 Jun 2024 01:23:05 +0200
Subject: upstream testsuite: disable su tests
Debian uses su from util-linux, pointless/impossible to test shadow's su
here.
---
tests/run_some | 68 ----------------------------------------------------------
1 file changed, 68 deletions(-)
diff --git a/tests/run_some b/tests/run_some
index c58f59b..46317eb 100755
--- a/tests/run_some
+++ b/tests/run_some
@@ -79,74 +79,6 @@ echo "-: test failed"
find "${build_path}" -name "*.gcda" -delete
# ignore the result of the first test. ~magic~
run_test ./su/01/su_user.test ignore_failure
-run_test ./su/01/su_user.test
-run_test ./su/01/su_root.test
-find "${build_path}" -name "*.gcda" -exec chmod a+rw {} \;
-run_test ./su/02/env_FOO-options_--login
-run_test ./su/02/env_FOO-options_--login_bash
-run_test ./su/02/env_FOO-options_--preserve-environment
-run_test ./su/02/env_FOO-options_--preserve-environment_bash
-run_test ./su/02/env_FOO-options_-
-run_test ./su/02/env_FOO-options_-_bash
-run_test ./su/02/env_FOO-options_-l-m
-run_test ./su/02/env_FOO-options_-l-m_bash
-run_test ./su/02/env_FOO-options_-l
-run_test ./su/02/env_FOO-options_-l_bash
-run_test ./su/02/env_FOO-options_-m_bash
-run_test ./su/02/env_FOO-options_-m
-run_test ./su/02/env_FOO-options_-p
-run_test ./su/02/env_FOO-options_-p_bash
-run_test ./su/02/env_FOO-options__bash
-run_test ./su/02/env_FOO-options_
-run_test ./su/02/env_FOO-options_-p-
-run_test ./su/02/env_FOO-options_-p-_bash
-run_test ./su/02/env_special-options_-l-p
-run_test ./su/02/env_special-options_-l
-run_test ./su/02/env_special-options_-l-p_bash
-run_test ./su/02/env_special-options_-l_bash
-run_test ./su/02/env_special-options_-p
-run_test ./su/02/env_special-options_-p_bash
-run_test ./su/02/env_special-options_
-run_test ./su/02/env_special-options__bash
-run_test ./su/02/env_special_root-options_-l-p
-run_test ./su/02/env_special_root-options_-l-p_bash
-run_test ./su/02/env_special_root-options_-l
-run_test ./su/02/env_special_root-options_-l_bash
-run_test ./su/02/env_special_root-options_-p
-run_test ./su/02/env_special_root-options_-p_bash
-run_test ./su/02/env_special_root-options_
-run_test ./su/02/env_special_root-options__bash
-run_test ./su/03/su_run_command01.test
-run_test ./su/03/su_run_command02.test
-run_test ./su/03/su_run_command03.test
-run_test ./su/03/su_run_command04.test
-run_test ./su/03/su_run_command05.test
-run_test ./su/03/su_run_command06.test
-run_test ./su/03/su_run_command07.test
-run_test ./su/03/su_run_command08.test
-run_test ./su/03/su_run_command09.test
-run_test ./su/03/su_run_command10.test
-run_test ./su/03/su_run_command11.test
-run_test ./su/03/su_run_command12.test
-run_test ./su/03/su_run_command13.test
-run_test ./su/03/su_run_command14.test
-run_test ./su/03/su_run_command15.test
-run_test ./su/03/su_run_command16.test
-run_test ./su/03/su_run_command17.test
-run_test ./su/04/su_wrong_user.test
-run_test ./su/04/su_user_wrong_passwd.test
-run_test ./su/04/su_user_wrong_passwd_syslog.test
-run_test ./su/05/su_user_wrong_passwd_syslog.test
-run_test ./su/06/su_user_syslog.test
-run_test ./su/07/su_user_syslog.test
-run_test ./su/08/env_special-options_
-run_test ./su/08/env_special_root-options_
-run_test ./su/09/env_special-options_
-run_test ./su/09/env_special_root-options_
-run_test ./su/10_su_sulog_success/su.test
-run_test ./su/11_su_sulog_failure/su.test
-run_test ./su/12_su_child_failure/su.test
-run_test ./su/13_su_child_success/su.test
run_test ./libsubid/01_list_ranges/list_ranges.test
run_test ./libsubid/02_get_subid_owners/get_subid_owners.test
run_test ./libsubid/03_add_remove/add_remove_subids.test

11
debian/patches/series vendored
View File

@@ -1,11 +0,0 @@
debian/Set-group-and-mode-for-g-shadow-files.patch
debian/Keep-using-Debian-adduser-defaults.patch
debian/Exclude-Debian-globally-allocated-UIDs-from-sys_uid-range.patch
debian/Document-the-shadowconfig-utility.patch
debian/Recommend-using-adduser-and-deluser.patch
debian/tests-disable-su.patch
debian/Adapt-login.defs-for-Debian.patch
debian/Stop-building-programs-we-do-not-install.patch
debian/Warn-when-badname-and-variants-are-given.patch
debian/configure.ac-align-exec_prefix-with-prefix.patch
debian/chpasswd-Disable-broken-hash-check.patch

64
debian/rules vendored
View File

@@ -1,64 +0,0 @@
#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-
# Enable PIE, BINDNOW, and possible future flags.
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/buildflags.mk
include /usr/share/debhelper/dh_package_notes/package-notes.mk
# Adds extra options when calling the configure script:
DEB_CONFIGURE_EXTRA_FLAGS := \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--mandir=/usr/share/man \
--with-libpam \
--with-yescrypt \
--enable-shadowgrp \
--enable-subordinate-ids \
--enable-lastlog=no \
--enable-man \
--disable-account-tools-setuid \
--with-group-name-max-length=32 \
--with-acl \
--with-attr \
--without-su \
--without-tcb \
ifeq ($(DEB_HOST_ARCH_OS),linux)
DEB_CONFIGURE_EXTRA_FLAGS += --with-audit
DEB_CONFIGURE_EXTRA_FLAGS += --with-btrfs
else
DEB_CONFIGURE_EXTRA_FLAGS += --disable-logind
endif
ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),)
DEB_CONFIGURE_EXTRA_FLAGS += --disable-man
endif
DEB_CONFIGURE_EXTRA_FLAGS += SHELL=/bin/sh
# Set the default editor for vipw/vigr
CFLAGS += -DDEFAULT_EDITOR="\"sensible-editor\""
%:
dh $@
execute_after_dh_auto_clean:
# rebuild lib/getdate.c
rm -f lib/getdate.c
override_dh_auto_configure:
dh_auto_configure -- $(DEB_CONFIGURE_EXTRA_FLAGS)
override_dh_installpam:
# Distribute the pam.d files; unless for the commands with disabled PAM
# support
dh_installpam -p passwd --name=passwd
dh_installpam -p passwd --name=chfn
dh_installpam -p passwd --name=chsh
dh_installpam -p passwd --name=chpasswd
dh_installpam -p passwd --name=newusers

40
debian/salsa-ci.yml vendored
View File

@@ -1,40 +0,0 @@
---
include: https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
extract-source:
extends: .provisioning-extract-source
variables:
RELEASE: 'unstable'
build:
extends: .build-package
test-build-any:
extends: .test-build-package-any
test-build-all:
extends: .test-build-package-all
lintian:
extends: .test-lintian
autopkgtest:
extends: .test-autopkgtest
blhc:
extends: .test-blhc
reprotest:
extends: .test-reprotest
variables:
SALSA_CI_ENABLE_BUILD_PACKAGE_PROFILES: 1
test-build-profiles:
extends: .test-build-package-profiles
parallel:
matrix:
- BUILD_PROFILES: nocheck
- BUILD_PROFILES: nodoc

56
debian/shadowconfig vendored
View File

@@ -1,56 +0,0 @@
#!/bin/sh
# turn shadow passwords on on a Debian system
set -e
shadowon () {
set -e
if [ -n "$DPKG_ROOT" ] \
&& cmp "${DPKG_ROOT}/etc/passwd" "${DPKG_ROOT}/usr/share/base-passwd/passwd.master" 2>/dev/null \
&& cmp "${DPKG_ROOT}/etc/group" "${DPKG_ROOT}/usr/share/base-passwd/group.master" 2>/dev/null; then
# If dpkg is run with --force-script-chrootless and if /etc/passwd
# and /etc/group are unchanged, we avoid the chroot() call by manually
# processing the files. This produces bit-by-bit identical results
# compared to the normal case as shown by the CI setup at
# https://salsa.debian.org/helmutg/dpkg-root-demo/-/jobs
for f in passwd group; do
cp -a "${DPKG_ROOT}/etc/$f" "${DPKG_ROOT}/etc/$f-"
done
chmod 600 "${DPKG_ROOT}/etc/passwd-"
sed -i 's/^\([^:]\+\):\*:/\1:x:/' "${DPKG_ROOT}/etc/group" "${DPKG_ROOT}/etc/passwd"
[ -n "$SOURCE_DATE_EPOCH" ] && epoch=$SOURCE_DATE_EPOCH || epoch=$(date +%s)
sed "s/^\([^:]\+\):.*/\1:*:$((epoch/60/60/24)):0:99999:7:::/" "${DPKG_ROOT}/etc/passwd" > "${DPKG_ROOT}/etc/shadow"
sed "s/^\([^:]\+\):.*/\1:*::/" "${DPKG_ROOT}/etc/group" > "${DPKG_ROOT}/etc/gshadow"
touch "${DPKG_ROOT}/etc/.pwd.lock"
chmod 600 "${DPKG_ROOT}/etc/.pwd.lock"
else
pwck -q -r
grpck -r
pwconv
grpconv
fi
chown root:root "${DPKG_ROOT}/etc/passwd" "${DPKG_ROOT}/etc/group"
chmod 644 "${DPKG_ROOT}/etc/passwd" "${DPKG_ROOT}/etc/group"
chown root:shadow "${DPKG_ROOT}/etc/shadow" "${DPKG_ROOT}/etc/gshadow"
chmod 640 "${DPKG_ROOT}/etc/shadow" "${DPKG_ROOT}/etc/gshadow"
}
case "$1" in
"on")
if shadowon ; then
echo Shadow passwords are now on.
else
echo Please correct the error and rerun \`$0 on\'
exit 1
fi
;;
"off")
echo E: Turning shadow passwords off is no longer supported.
exit 1
;;
*)
echo Usage: $0 on
;;
esac

1
debian/shlibs.local vendored
View File

@@ -1 +0,0 @@
deb: libsubid 5 libsubid5 (= ${binary:Version})

View File

@@ -1 +0,0 @@
3.0 (quilt)

View File

@@ -1,6 +0,0 @@
# debputy does not need misc:Depends
debhelper-but-no-misc-depends libsubid-dev
debhelper-but-no-misc-depends libsubid5
debhelper-but-no-misc-depends login.defs
debhelper-but-no-misc-depends passwd
debhelper-but-no-misc-depends uidmap

10
debian/tests/control vendored
View File

@@ -1,10 +0,0 @@
Tests: smoke
Restrictions: needs-root, superficial
Tests: upstream
Depends:
expect,
procps,
@,
@builddeps@
Restrictions: needs-root, build-needed, breaks-testbed, allow-stderr, isolation-machine

24
debian/tests/smoke vendored
View File

@@ -1,24 +0,0 @@
#!/bin/sh
set -e
echo "Adding a user works"
useradd shadow-test-user
grep '^shadow-test-user:x:' /etc/passwd
grep '^shadow-test-user:!:' /etc/shadow
# Regression test for #1096187. adduser uses this sequence.
echo "Changing a users name and work phone number works"
chfn "-f" "foo" "-r" "" shadow-test-user
chfn -w "" shadow-test-user
# Regression test for #1095430
TZ=Asia/Tokyo usermod --expiredate 1970-01-02 shadow-test-user
TZ=Asia/Tokyo LC_ALL=C chage -l shadow-test-user | grep 'Account expires'
# We expect 1970-01-02, as passed.
TZ=Asia/Tokyo LC_ALL=C chage -l shadow-test-user | grep -P '^Account expires.*Jan 02, 1970'
echo "Removing a user works"
userdel shadow-test-user
! grep 'shadow-test-user' /etc/passwd
! grep 'shadow-test-user' /etc/shadow

15
debian/tests/upstream vendored
View File

@@ -1,15 +0,0 @@
#!/bin/sh
useradd ubuntu
export BUILD_BASE_DIR=$(pwd)
cd tests
cleanup() {
cp testsuite.log $AUTOPKGTEST_ARTIFACTS/
cat testsuite.log
}
trap cleanup TERM EXIT
./run_some 2>&1

View File

@@ -1,3 +0,0 @@
usr/bin/getsubids
usr/bin/newgidmap
usr/bin/newuidmap

View File

@@ -1,2 +0,0 @@
uidmap: elevated-privileges 4755 root/root [usr/bin/newgidmap]
uidmap: elevated-privileges 4755 root/root [usr/bin/newuidmap]

View File

@@ -1,5 +0,0 @@
usr/share/man/*/man1/newgidmap.1
usr/share/man/*/man1/newuidmap.1
usr/share/man/man1/getsubids.1
usr/share/man/man1/newgidmap.1
usr/share/man/man1/newuidmap.1

View File

@@ -1,4 +0,0 @@
---
Bug-Database: https://github.com/shadow-maint/shadow/issues
Bug-Submit: https://github.com/shadow-maint/shadow/issues/new
Repository-Browse: https://github.com/shadow-maint/shadow

File diff suppressed because it is too large Load Diff

7
debian/watch vendored
View File

@@ -1,7 +0,0 @@
version=4
opts=downloadurlmangle=s/archive\/refs\/tags\/(.*)\.tar\.gz/releases\/download\/$1\/@PACKAGE@-$1\.tar\.xz/,\
pgpsigurlmangle=s/$/.asc/,\
versionmangle=s/-(alpha|beta|rc)/~$1/,\
dversionmangle=s/\+dfsg1//,repacksuffix=+dfsg1 \
https://github.com/shadow-maint/@PACKAGE@/tags \
/shadow-maint/@PACKAGE@/archive/refs/tags/([^v].*)\.tar\.gz

View File

@@ -7,6 +7,9 @@
#include <stddef.h>
#include <string.h>
#include "string/strcmp/streq.h"
#include "string/strcmp/strprefix.h"
/*
* match_regex - return true if match, false if not
@@ -37,6 +40,15 @@ match_regex(const char *pattern, const char *string)
bool
is_valid_hash(const char *hash)
{
hash = strprefix(hash, "!") ?: hash;
// Passwordless account; discouraged
if (streq(hash, ""))
return true;
if (streq(hash, "*"))
return true;
// Minimum hash length
if (strlen(hash) < 13)
return false;

View File

@@ -1,2 +1,2 @@
<!ENTITY GROUP_NAME_MAX_LENGTH '32'>
<!ENTITY SHADOW_UTILS_VERSION '4.19.0'>
<!ENTITY SHADOW_UTILS_VERSION '4.19.2'>

View File

@@ -2,12 +2,12 @@
.\" Title: chfn
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30/12/2025
.\" Date: 19/01/2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: Danish
.\"
.TH "CHFN" "1" "30/12/2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "CHFN" "1" "19/01/2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: newgrp
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30/12/2025
.\" Date: 19/01/2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: Danish
.\"
.TH "NEWGRP" "1" "30/12/2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "NEWGRP" "1" "19/01/2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: sg
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30/12/2025
.\" Date: 19/01/2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: Danish
.\"
.TH "SG" "1" "30/12/2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "SG" "1" "19/01/2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: gshadow
.\" Author: Nicolas Fran\(,cois <nicolas.francois@centraliens.net>
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30/12/2025
.\" Date: 19/01/2026
.\" Manual: File Formats and Configuration Files
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: Danish
.\"
.TH "GSHADOW" "5" "30/12/2025" "shadow\-utils 4\&.19\&.0" "File Formats and Configuration"
.TH "GSHADOW" "5" "19/01/2026" "shadow\-utils 4\&.19\&.2" "File Formats and Configuration"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: groupdel
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30/12/2025
.\" Date: 19/01/2026
.\" Manual: System Management Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: Danish
.\"
.TH "GROUPDEL" "8" "30/12/2025" "shadow\-utils 4\&.19\&.0" "System Management Commands"
.TH "GROUPDEL" "8" "19/01/2026" "shadow\-utils 4\&.19\&.2" "System Management Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: logoutd
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30/12/2025
.\" Date: 19/01/2026
.\" Manual: System Management Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: Danish
.\"
.TH "LOGOUTD" "8" "30/12/2025" "shadow\-utils 4\&.19\&.0" "System Management Commands"
.TH "LOGOUTD" "8" "19/01/2026" "shadow\-utils 4\&.19\&.2" "System Management Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: nologin
.\" Author: Nicolas Fran\(,cois <nicolas.francois@centraliens.net>
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30/12/2025
.\" Date: 19/01/2026
.\" Manual: System Management Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: Danish
.\"
.TH "NOLOGIN" "8" "30/12/2025" "shadow\-utils 4\&.19\&.0" "System Management Commands"
.TH "NOLOGIN" "8" "19/01/2026" "shadow\-utils 4\&.19\&.2" "System Management Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: vipw
.\" Author: Marek Micha\(/lkiewicz
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30/12/2025
.\" Date: 19/01/2026
.\" Manual: System Management Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: Danish
.\"
.TH "VIPW" "8" "30/12/2025" "shadow\-utils 4\&.19\&.0" "System Management Commands"
.TH "VIPW" "8" "19/01/2026" "shadow\-utils 4\&.19\&.2" "System Management Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: chage
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "CHAGE" "1" "30.12.2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "CHAGE" "1" "19.01.2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: chfn
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "CHFN" "1" "30.12.2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "CHFN" "1" "19.01.2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: chsh
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "CHSH" "1" "30.12.2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "CHSH" "1" "19.01.2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: expiry
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "EXPIRY" "1" "30.12.2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "EXPIRY" "1" "19.01.2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: gpasswd
.\" Author: Rafal Maszkowski
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "GPASSWD" "1" "30.12.2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "GPASSWD" "1" "19.01.2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: login
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "LOGIN" "1" "30.12.2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "LOGIN" "1" "19.01.2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: newgrp
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "NEWGRP" "1" "30.12.2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "NEWGRP" "1" "19.01.2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: passwd
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "PASSWD" "1" "30.12.2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "PASSWD" "1" "19.01.2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: sg
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "SG" "1" "30.12.2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "SG" "1" "19.01.2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: su
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: User Commands
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "SU" "1" "30.12.2025" "shadow\-utils 4\&.19\&.0" "User Commands"
.TH "SU" "1" "19.01.2026" "shadow\-utils 4\&.19\&.2" "User Commands"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: shadow
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: Library Calls
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "SHADOW" "3" "30.12.2025" "shadow\-utils 4\&.19\&.0" "Library Calls"
.TH "SHADOW" "3" "19.01.2026" "shadow\-utils 4\&.19\&.2" "Library Calls"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: faillog
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: File Formats and Configuration Files
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "FAILLOG" "5" "30.12.2025" "shadow\-utils 4\&.19\&.0" "File Formats and Configuratio"
.TH "FAILLOG" "5" "19.01.2026" "shadow\-utils 4\&.19\&.2" "File Formats and Configuratio"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: gshadow
.\" Author: Nicolas Fran\(,cois <nicolas.francois@centraliens.net>
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: File Formats and Configuration Files
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "GSHADOW" "5" "30.12.2025" "shadow\-utils 4\&.19\&.0" "File Formats and Configuration"
.TH "GSHADOW" "5" "19.01.2026" "shadow\-utils 4\&.19\&.2" "File Formats and Configuration"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: limits
.\" Author: Luca Berra
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: File Formats and Configuration Files
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "LIMITS" "5" "30.12.2025" "shadow\-utils 4\&.19\&.0" "File Formats and Configuration"
.TH "LIMITS" "5" "19.01.2026" "shadow\-utils 4\&.19\&.2" "File Formats and Configuration"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: login.access
.\" Author: Marek Micha\(/lkiewicz
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: File Formats and Configuration Files
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "LOGIN\&.ACCESS" "5" "30.12.2025" "shadow\-utils 4\&.19\&.0" "File Formats and Configuration"
.TH "LOGIN\&.ACCESS" "5" "19.01.2026" "shadow\-utils 4\&.19\&.2" "File Formats and Configuration"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: login.defs
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: File Formats and Configuration Files
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "LOGIN\&.DEFS" "5" "30.12.2025" "shadow\-utils 4\&.19\&.0" "File Formats and Configuration"
.TH "LOGIN\&.DEFS" "5" "19.01.2026" "shadow\-utils 4\&.19\&.2" "File Formats and Configuration"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: passwd
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: File Formats and Configuration Files
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "PASSWD" "5" "30.12.2025" "shadow\-utils 4\&.19\&.0" "File Formats and Configuration"
.TH "PASSWD" "5" "19.01.2026" "shadow\-utils 4\&.19\&.2" "File Formats and Configuration"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: porttime
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: File Formats and Configuration Files
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "PORTTIME" "5" "30.12.2025" "shadow\-utils 4\&.19\&.0" "File Formats and Configuration"
.TH "PORTTIME" "5" "19.01.2026" "shadow\-utils 4\&.19\&.2" "File Formats and Configuration"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

View File

@@ -2,12 +2,12 @@
.\" Title: shadow
.\" Author: Julianne Frances Haugh
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\" Date: 30.12.2025
.\" Date: 19.01.2026
.\" Manual: File Formats and Configuration Files
.\" Source: shadow-utils 4.19.0
.\" Source: shadow-utils 4.19.2
.\" Language: German
.\"
.TH "SHADOW" "5" "30.12.2025" "shadow\-utils 4\&.19\&.0" "File Formats and Configuration"
.TH "SHADOW" "5" "19.01.2026" "shadow\-utils 4\&.19\&.2" "File Formats and Configuration"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------

Some files were not shown because too many files have changed in this diff Show More