Major infrastructure changes, part 2.
* Moved helpers, common and triggers dirs into xbps-src, where
they belong.
* Renamed the templates dir to srcpkgs, it was so redundant before.
* Make it possible to add subpkgs with no restriction in names, for
example udev now has a subpkgs called "libgudev". Previously
subpkgs were named "${sourcepkg}-${pkgname}".
* xbps-src: changed to look for template files in current directory.
That means that most arguments from the targets have been removed.
* xbps-src: added a reinstall target, to remove + install.
* xbps-src: do not overwrite binpkgs by default, skip them.
And more that I forgot because it's a mega-commit that I've been
working for some days already...
--HG--
extra : convert_revision : 0f466878584d1e6895d2a234f07ea1b2d1e61b3e
This commit is contained in:
61
srcpkgs/shadow/INSTALL
Normal file
61
srcpkgs/shadow/INSTALL
Normal file
@@ -0,0 +1,61 @@
|
||||
#
|
||||
# This script creates default /etc/passwd and /etc/group
|
||||
# files if they are unexistent.
|
||||
#
|
||||
# Also shadow passwords are enabled.
|
||||
|
||||
create_passwd()
|
||||
{
|
||||
cat > ./etc/passwd <<_EOF
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
|
||||
_EOF
|
||||
echo "Created default /etc/passwd file."
|
||||
}
|
||||
|
||||
create_group()
|
||||
{
|
||||
# Default group list as specified by LFS.
|
||||
cat > ./etc/group <<_EOF
|
||||
root:x:0:
|
||||
bin:x:1:
|
||||
sys:x:2:
|
||||
kmem:x:3:
|
||||
wheel:x:4:
|
||||
tty:x:5:
|
||||
tape:x:6:
|
||||
daemon:x:7:
|
||||
floppy:x:8:
|
||||
disk:x:9:
|
||||
lp:x:10:
|
||||
dialout:x:11:
|
||||
audio:x:12:
|
||||
video:x:13:
|
||||
utmp:x:14:
|
||||
usb:x:15:
|
||||
cdrom:x:16:
|
||||
optical:x:17:
|
||||
mail:x:18:
|
||||
storage:x:19:
|
||||
scanner:x:20:
|
||||
nogroup:x:99:
|
||||
users:x:1000:
|
||||
_EOF
|
||||
echo "Created default /etc/group file."
|
||||
}
|
||||
|
||||
case "${ACTION}" in
|
||||
pre)
|
||||
;;
|
||||
post)
|
||||
echo "Running ${PKGNAME}-${VERSION} post installation hooks..."
|
||||
|
||||
[ ! -f ./etc/passwd ] && create_passwd
|
||||
[ ! -f ./etc/group ] && create_group
|
||||
|
||||
if [ ! -f ./etc/shadow ]; then
|
||||
echo "Enabling shadowed (group) passwords..."
|
||||
pwconv && grpconv
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
5
srcpkgs/shadow/files/chage.pam
Normal file
5
srcpkgs/shadow/files/chage.pam
Normal file
@@ -0,0 +1,5 @@
|
||||
auth sufficient pam_rootok.so
|
||||
auth required pam_unix.so
|
||||
account required pam_unix.so
|
||||
session required pam_unix.so
|
||||
password required pam_permit.so
|
||||
63
srcpkgs/shadow/files/login.defs
Normal file
63
srcpkgs/shadow/files/login.defs
Normal file
@@ -0,0 +1,63 @@
|
||||
# *REQUIRED*
|
||||
# Directory where mailboxes reside, _or_ name of file, relative to the
|
||||
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
|
||||
# QMAIL_DIR is for Qmail
|
||||
#
|
||||
#QMAIL_DIR Maildir
|
||||
MAIL_DIR /var/mail
|
||||
#MAIL_FILE .mail
|
||||
|
||||
# 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_WARN_AGE 7
|
||||
|
||||
#
|
||||
# Min/max values for automatic uid selection in useradd
|
||||
#
|
||||
UID_MIN 1000
|
||||
UID_MAX 60000
|
||||
# System accounts
|
||||
SYS_UID_MIN 100
|
||||
SYS_UID_MAX 999
|
||||
|
||||
#
|
||||
# Min/max values for automatic gid selection in groupadd
|
||||
#
|
||||
GID_MIN 100
|
||||
GID_MAX 60000
|
||||
# System accounts
|
||||
SYS_GID_MIN 100
|
||||
SYS_GID_MAX 999
|
||||
|
||||
#
|
||||
# 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
|
||||
|
||||
#
|
||||
# If useradd should create home directories for users by default
|
||||
# On RH systems, we do. This option is overridden with the -m flag on
|
||||
# useradd command line.
|
||||
#
|
||||
CREATE_HOME yes
|
||||
|
||||
# The permission mask is initialized to this value. If not specified,
|
||||
# the permission mask will be initialized to 022.
|
||||
UMASK 077
|
||||
|
||||
# This enables userdel to remove user groups if no members exist.
|
||||
#
|
||||
USERGROUPS_ENAB yes
|
||||
|
||||
# Disable MD5 and use SHA512 by default.
|
||||
MD5_CRYPT_ENAB no
|
||||
ENCRYPT_METHOD SHA512
|
||||
14
srcpkgs/shadow/files/login.pam
Normal file
14
srcpkgs/shadow/files/login.pam
Normal file
@@ -0,0 +1,14 @@
|
||||
# /etc/pam.d/login service with cracklib.
|
||||
auth requisite pam_nologin.so
|
||||
auth required pam_securetty.so
|
||||
auth required pam_unix.so
|
||||
account required pam_access.so
|
||||
account required pam_unix.so
|
||||
session required pam_env.so
|
||||
session required pam_motd.so
|
||||
session required pam_limits.so
|
||||
session optional pam_mail.so dir=/var/mail standard
|
||||
session optional pam_lastlog.so
|
||||
session required pam_unix.so
|
||||
password required pam_cracklib.so try_first_pass retry=3
|
||||
password required pam_unix.so sha512 shadow nullok try_first_pass use_authtok
|
||||
8
srcpkgs/shadow/files/other.pam
Normal file
8
srcpkgs/shadow/files/other.pam
Normal file
@@ -0,0 +1,8 @@
|
||||
auth required pam_deny.so
|
||||
auth required pam_warn.so
|
||||
account required pam_deny.so
|
||||
account required pam_warn.so
|
||||
password required pam_deny.so
|
||||
password required pam_warn.so
|
||||
session required pam_deny.so
|
||||
session required pam_warn.so
|
||||
3
srcpkgs/shadow/files/passwd.pam
Normal file
3
srcpkgs/shadow/files/passwd.pam
Normal file
@@ -0,0 +1,3 @@
|
||||
password required pam_cracklib.so type=Linux retry=3 \
|
||||
dictpath=/lib/cracklib/pw_dict
|
||||
password required pam_unix.so sha512 shadow use_authtok
|
||||
6
srcpkgs/shadow/files/shadow.cron-daily
Normal file
6
srcpkgs/shadow/files/shadow.cron-daily
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Verify integrity of password and group files
|
||||
/usr/sbin/pwck -r
|
||||
/usr/sbin/grpck -r
|
||||
|
||||
7
srcpkgs/shadow/files/su.pam
Normal file
7
srcpkgs/shadow/files/su.pam
Normal file
@@ -0,0 +1,7 @@
|
||||
auth sufficient pam_rootok.so
|
||||
auth required pam_unix.so
|
||||
account required pam_unix.so
|
||||
session optional pam_mail.so dir=/var/mail standard
|
||||
session optional pam_xauth.so
|
||||
session required pam_env.so
|
||||
session required pam_unix.so
|
||||
62
srcpkgs/shadow/template
Normal file
62
srcpkgs/shadow/template
Normal file
@@ -0,0 +1,62 @@
|
||||
# Template file for 'shadow'
|
||||
pkgname=shadow
|
||||
version=4.1.4.2
|
||||
revision=1
|
||||
distfiles="ftp://pkg-shadow.alioth.debian.org/pub/pkg-shadow/$pkgname-$version.tar.bz2"
|
||||
build_style=gnu_configure
|
||||
configure_args="--libdir=/lib --enable-shared --disable-static
|
||||
--with-libpam --without-selinux"
|
||||
short_desc="Shadow password file utilities"
|
||||
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||
checksum=97987f6a7967a85e6aa0dba2a1d52db8bd69af5a717391de5693db768fb78990
|
||||
long_desc="
|
||||
Shadow password file utilities for GNU/Linux."
|
||||
|
||||
conf_files="/etc/pam.d/usermod /etc/pam.d/userdel /etc/pam.d/useradd
|
||||
/etc/pam.d/su /etc/pam.d/passwd /etc/pam.d/newusers /etc/pam.d/login
|
||||
/etc/pam.d/groupmod /etc/pam.d/groupmems /etc/pam.d/groupdel
|
||||
/etc/pam.d/groupadd /etc/pam.d/chsh /etc/pam.d/chpasswd
|
||||
/etc/pam.d/chgpasswd /etc/pam.d/chfn /etc/pam.d/chage /etc/defaults/useradd
|
||||
/etc/pam.d/other /etc/login.defs"
|
||||
|
||||
Add_dependency full glibc
|
||||
Add_dependency full pam
|
||||
Add_dependency build gettext
|
||||
|
||||
pre_build()
|
||||
{
|
||||
# Don't install the groups cmd, we use the one from coreutils.
|
||||
cd $wrksrc || return 1
|
||||
sed -i 's/groups$(EXEEXT) //' src/Makefile
|
||||
for f in $(find man -name Makefile); do
|
||||
sed -i 's/groups\.1 / /' $f
|
||||
done
|
||||
}
|
||||
|
||||
post_install()
|
||||
{
|
||||
# Install our pam files not the ones supplied with shadow.
|
||||
rm -f ${DESTDIR}/etc/pam.d/*
|
||||
for f in chage login passwd su other; do
|
||||
install -m644 ${FILESDIR}/${f}.pam ${DESTDIR}/etc/pam.d/${f}
|
||||
done
|
||||
for f in chpasswd chgpasswd groupadd groupdel groupmems \
|
||||
groupmod newusers useradd userdel usermod chsh chfn; do
|
||||
install -m644 $DESTDIR/etc/pam.d/chage $DESTDIR/etc/pam.d/${f}
|
||||
done
|
||||
install -m644 ${FILESDIR}/login.defs ${DESTDIR}/etc
|
||||
|
||||
# Disable creating mailbox files by default.
|
||||
sed -i -e 's/yes/no/' $DESTDIR/etc/default/useradd
|
||||
|
||||
# Install the cron daily job.
|
||||
install -D -m744 ${FILESDIR}/shadow.cron-daily \
|
||||
${DESTDIR}/etc/cron.daily/shadow
|
||||
|
||||
# Remove unused files due to PAM.
|
||||
for f in login.access limits; do
|
||||
[ -f ${DESTDIR}/etc/${f} ] && rm -f ${DESTDIR}/etc/${f}
|
||||
done
|
||||
# Remove groups.1 manpages that comes with coreutils.
|
||||
rm -f ${DESTDIR}/usr/share/man/man1/groups.1
|
||||
}
|
||||
Reference in New Issue
Block a user