diff --git a/templates/shadow.prepost-action b/templates/shadow.prepost-action new file mode 100644 index 00000000000..b39ed5d1898 --- /dev/null +++ b/templates/shadow.prepost-action @@ -0,0 +1,67 @@ +#!/bin/sh -e + +export PATH="/bin:/sbin:/usr/bin:/usr/sbin" + +# $1 = chrootdir +# $2 = action +# $3 = pkgname +# $4 = version + +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: +tty:x:4: +tape:x:5: +daemon:x:6: +floppy:x:7: +disk:x:8: +lp:x:9: +uucp:x:10: +audio:x:11: +video:x:12: +utmp:x:13: +usb:x:14: +cdrom:x:15: +mail:x:34: +nogroup:x:99: +users:x:1000: +_EOF + echo "Created default /etc/group file." +} + +case "$2" in +preinst) + ;; +postinst) + if [ "$1" = "NOTSET" ]; then + run_cmd="pwconv" + else + run_cmd="chroot $1 pwconv" + fi + + [ ! -f ./etc/passwd ] && create_passwd + [ ! -f ./etc/group ] && create_group + + if [ ! -f ./etc/shadow ]; then + echo "Enabling shadow passwords..." + ${run_cmd} + fi + ;; +esac + +exit 0 +