Use the ports framework to create pop3vscan user
This commit is contained in:
parent
fa7e2e9c78
commit
2e1f678ae6
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=369203
1
UIDs
1
UIDs
|
@ -93,6 +93,7 @@ kdm:*:147:147::0:0:KDE Display Manager:/nonexistent:/usr/sbin/nologin
|
|||
ipv6mon:*:148:148::0:0:IPv6 Address Monitoring Daemon:/nonexistent:/usr/sbin/nologin
|
||||
avenger:*:149:149::0:0:Mail Avenger:/var/spool/avenger:/usr/sbin/nologin
|
||||
cbsd:*:150:150::0:0:Cbsd user:/nonexistent:/bin/sh
|
||||
pop3vscan:*:151:6::0:0:POP3VScan Daemon:/var/spool/pop3vscan:/usr/sbin/nologin
|
||||
rbldns:*:153:153::0:0:rbldnsd pseudo-user:/nonexistent:/usr/sbin/nologin
|
||||
trircd:*:154:154::0:0:& user:/usr/local/etc/tr-ircd:/usr/sbin/nologin
|
||||
monetdb:*:156:156::0:0:MonetDB user:/usr/local/monetdb5:/bin/sh
|
||||
|
|
|
@ -15,7 +15,8 @@ LIB_DEPENDS= libpcre.so:${PORTSDIR}/devel/pcre
|
|||
USES= gmake
|
||||
USE_GCC= yes
|
||||
MAKE_ENV= _LDFLAGS="${LDFLAGS}"
|
||||
SCRIPTS_ENV= PKG_PREFIX=${PREFIX} NONEXISTENT=${NONEXISTENT} PASSWD=/etc/passwd STAGEDIR=${STAGEDIR}
|
||||
|
||||
USERS= pop3vscan
|
||||
|
||||
PLIST_FILES= etc/pop3vscan.conf.sample \
|
||||
etc/pop3vscan.mail.sample \
|
||||
|
@ -41,7 +42,4 @@ do-install:
|
|||
${INSTALL_DATA} ${WRKSRC}/pop3vscan.mail ${STAGEDIR}${PREFIX}/etc/pop3vscan.mail.sample
|
||||
${INSTALL_SCRIPT} ${FILESDIR}/pop3vscan.sh ${STAGEDIR}${PREFIX}/etc/rc.d/
|
||||
|
||||
post-install:
|
||||
@${SETENV} ${SCRIPTS_ENV} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
|
|
@ -1,124 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
chmods_done=" "
|
||||
|
||||
ask() {
|
||||
local question default answer
|
||||
|
||||
question=$1
|
||||
default=$2
|
||||
if [ -z "${PACKAGE_BUILDING}" ]; then
|
||||
read -p "${question} [${default}]? " answer
|
||||
fi
|
||||
if [ x${answer} = x ]; then
|
||||
answer=${default}
|
||||
fi
|
||||
echo ${answer}
|
||||
}
|
||||
|
||||
yesno() {
|
||||
local dflt question answer
|
||||
|
||||
question=$1
|
||||
dflt=$2
|
||||
while :; do
|
||||
answer=$(ask "${question}" "${dflt}")
|
||||
case "${answer}" in
|
||||
[Yy]*) return 0;;
|
||||
[Nn]*) return 1;;
|
||||
esac
|
||||
echo "Please answer yes or no."
|
||||
done
|
||||
}
|
||||
|
||||
make_account() {
|
||||
local u g gcos homeopt home
|
||||
|
||||
u=$1
|
||||
g=$2
|
||||
gcos=$3
|
||||
homeopt=${4:+"-d $4"}
|
||||
|
||||
if pw group show "${g}" >/dev/null 2>&1; then
|
||||
echo "You already have a group \"${g}\", so I will use it."
|
||||
else
|
||||
echo "You need a group \"${g}\"."
|
||||
if which -s pw && yesno "Would you like me to create it" y; then
|
||||
pw groupadd ${g} || exit
|
||||
echo "Done."
|
||||
else
|
||||
echo "Please create it, and try again."
|
||||
if ! grep -q "^${u}:" ${PASSWD}; then
|
||||
echo "While you're at it, please create a user \"${u}\" too,"
|
||||
echo "with a default group of \"${g}\"."
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if pw user show "${u}" >/dev/null 2>&1; then
|
||||
echo "You already have a user \"${u}\", so I will use it."
|
||||
else
|
||||
echo "You need a user \"${u}\"."
|
||||
if which -s pw && yesno "Would you like me to create it" y; then
|
||||
pw useradd ${u} -g ${g} -h - ${homeopt} \
|
||||
-s ${NONEXISTENT} -c "${gcos}" || exit
|
||||
echo "Done."
|
||||
else
|
||||
echo "Please create it, and try again."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ x"$homeopt" = x ]; then
|
||||
eval home=~${u}
|
||||
if [ ! -d "${home}" ]; then
|
||||
if yesno \
|
||||
"Would you like me to create ${u}'s home directory (${home})" y
|
||||
then
|
||||
(umask 77 && \
|
||||
mkdir -p ${home}) || exit
|
||||
chown -R ${u}:${g} ${home} || exit
|
||||
else
|
||||
echo "Please create it, and try again."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
case $2 in
|
||||
|
||||
POST-INSTALL)
|
||||
if which -s pw && which -s lockf; then
|
||||
:
|
||||
else
|
||||
cat <<EOF
|
||||
|
||||
This system looks like a pre-2.2 version of FreeBSD. I see that it
|
||||
is missing the "lockf" and/or "pw" utilities. I need these utilities.
|
||||
Please get them and install them, and try again. You can get the
|
||||
sources from:
|
||||
|
||||
ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.bin/lockf.tar.gz
|
||||
ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/src/usr.sbin/pw.tar.gz
|
||||
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
user=pop3vscan
|
||||
group=mail
|
||||
spooldir=${STAGEDIR}/var/spool/pop3vscan
|
||||
etcdir=${PREFIX:-$PKG_PREFIX}/etc
|
||||
|
||||
echo ""
|
||||
make_account ${user} ${group} "POP3VScan Daemon" ${spooldir}
|
||||
|
||||
if [ ! -d ${spooldir} ]; then
|
||||
echo "Creating \"${spooldir}\"."
|
||||
mkdir -p ${spooldir}
|
||||
fi
|
||||
spooldir=/var/spool/pop3vscan
|
||||
|
||||
echo "Fixing ownerships and modes in \"${spooldir}\"."
|
||||
chown -R ${user}:${group} ${spooldir}
|
||||
|
|
Loading…
Reference in New Issue
Block a user