This file is indexed.

postinst is in base-passwd 3.5.43.

This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#! /bin/sh

set -e

# Load the debconf confmodule if it is available.  It may not be because this
# package is essential and therefore can't depend on debconf directly.
if [ -f /usr/share/debconf/confmodule ]; then
	. /usr/share/debconf/confmodule
fi

changes=0

askyesno () {
	if [ "$DEBIAN_FRONTEND" = "noninteractive" ] ; then
		a=y
		return
	fi

	while : ; do
		echo -n "$1 "
		read a || true
		if [ "$a" = "" ] ; then
			a="y"
		fi
		a=`echo $a | tr A-Z a-z`
		if [ "$a" = "y" ] || [ "$a" = "n" ] ; then
			break
		fi
		echo "Illegal answer"
	done
}

# A cut-down version of 'which' from debianutils.
searchpath () {
	PROGRAM="$1"
	IFS_SAVE="$IFS"
	IFS=:
	RET=1
	for ELEMENT in $PATH; do
		if [ -z "$ELEMENT" ]; then
			ELEMENT=.
		fi
		if [ -f "$ELEMENT/$PROGRAM" ] && \
		   [ -x "$ELEMENT/$PROGRAM" ]; then
			RET=0
			break
		fi
	done
	IFS="$IFS_SAVE"
	return "$RET"
}


if [ ! "$1" = "configure" ] ; then
    exit 0
fi

if [ ! -e /etc/passwd ] ; then
	cp /usr/share/base-passwd/passwd.master /etc/passwd
fi

if [ ! -e /etc/group ] ; then
	cp /usr/share/base-passwd/group.master /etc/group
fi

if [ "$2" = "3.2.2" ] && [ -f /etc/passwd.org ] ; then
	cat <<EOF

You are upgrading from version 3.2.2 of base-passwd which had a nasty
bug: it swapped the uid and gid of local accounts.  If you have not
fixed this problem manually I can undo the changes by restoring your
previous passwd file from the backup /etc/passwd.org.

EOF

	askyesno "Should I restore your passwd? [Y/n]"

	if [ "$a" = "y" ] ; then
		cat /etc/passwd.org > /etc/passwd
		changes=1
	fi
fi

tmp=`tempfile`
if ! update-passwd --dry-run > $tmp ; then
	if [ -f /usr/share/debconf/confmodule ] ; then
		db_version 2.0
		update-passwd --verbose
		changes=1
	else
		cat <<EOF

update-passwd has found some differences between your system accounts
and the current Debian defaults.  It is advisable to allow update-passwd
to change your system; without those changes some packages might not work
correctly.  For more documentation on the Debian account policies, please
see /usr/share/doc/base-passwd/README.

The list of proposed changes is:

EOF

		cat $tmp
		cat <<EOF

It is highly recommended that you allow update-passwd to make these changes
(a backup file of modified files is made with the extension .org so you can
always restore the current settings).

EOF
		askyesno "May I update your system? [Y/n]"
	fi

	if [ "$a" = "y" ] ; then
		echo "Okay, I am going to make the necessary updates now"
		update-passwd --verbose
		changes=1
	elif [ "$a" = "n" ] ; then
		cat <<EOF

Okay, I will not update your system.  If you want to make this update later
please check the update-passwd utility.

EOF

	fi
fi

rm -f $tmp

if [ "$changes" -gt 0 ] ; then
	if searchpath nscd; then
		nscd -i passwd -i group || true
	fi
fi



exit 0