diff options
author | dbaker <dbaker@FreeBSD.org> | 2001-12-04 01:43:20 +0000 |
---|---|---|
committer | dbaker <dbaker@FreeBSD.org> | 2001-12-04 01:43:20 +0000 |
commit | 64d49c15f0244bdad3ba00782b43ed63faf6e3e8 (patch) | |
tree | c170fe3c955dc5507d51f34f8017469cf045e8c9 /misc | |
parent | 47cf1086ad8c45803fba15094ff73ab14c652d64 (diff) | |
download | FreeBSD-ports-64d49c15f0244bdad3ba00782b43ed63faf6e3e8.zip FreeBSD-ports-64d49c15f0244bdad3ba00782b43ed63faf6e3e8.tar.gz |
Create a "dnetc" user and group that owns relevant dnetc
directories, files, and runs the client.
This removes all reliance on the "nobody" account so that the account
doesn't own any files or run any processes.
Diffstat (limited to 'misc')
-rw-r--r-- | misc/dnetc/Makefile | 22 | ||||
-rw-r--r-- | misc/dnetc/files/dnetc.sh | 2 | ||||
-rw-r--r-- | misc/dnetc/pkg-install | 32 |
3 files changed, 47 insertions, 9 deletions
diff --git a/misc/dnetc/Makefile b/misc/dnetc/Makefile index 7e91777..47f8d50 100644 --- a/misc/dnetc/Makefile +++ b/misc/dnetc/Makefile @@ -40,8 +40,10 @@ NO_BUILD= yes BINDIR= ${PREFIX}/distributed.net LIBDIR= ${PREFIX}/etc/rc.d -CLIENTUID= nobody -CLIENTGID= daemon +CLIENTUSER= dnetc +CLIENTUID= 26 +CLIENTGROUP= ${CLIENTUSER} +CLIENTGID= ${CLIENTUID} SBINMODE= 700 BINMODE= 700 @@ -49,23 +51,27 @@ BINMODE= 700 MAN1= dnetc.1 do-configure: - if [ ! -f ${PREFIX}/dnetc.ini ]; then \ + @if [ ! -f ${PREFIX}/dnetc.ini ]; then \ ${INSTALL} -c -m 644 ${FILESDIR}/dnetc.ini ${WRKSRC}; \ fi +pre-install: + @${ECHO} "==> Creating custom user to run dnetc..." + ${PKGINSTALL} ${PKGNAME} PRE-INSTALL "${CLIENTUSER}" "${CLIENTUID}" "${CLIENTGROUP}" "${CLIENTGID}" + do-install: - if [ ! -d ${BINDIR} ]; then \ + @if [ ! -d ${BINDIR} ]; then \ ${MKDIR} ${BINDIR}; \ fi - ${INSTALL} -c -m ${SBINMODE} -o ${CLIENTUID} -g ${CLIENTGID} ${WRKSRC}/dnetc ${BINDIR} + ${INSTALL} -c -m ${SBINMODE} -o ${CLIENTUSER} -g ${CLIENTGROUP} ${WRKSRC}/dnetc ${BINDIR} ${SED} s#CHANGETHIS#${BINDIR}# < ${FILESDIR}/dnetc.sh > ${WRKSRC}/dnetc.sh.pathnames ${INSTALL} -c -m ${SBINMODE} ${WRKSRC}/dnetc.sh.pathnames ${LIBDIR}/dnetc.sh ${INSTALL_DATA} ${FILESDIR}/INFO ${BINDIR} - ${CHOWN} ${CLIENTUID}:${CLIENTGID} ${BINDIR} + ${CHOWN} ${CLIENTUSER}:${CLIENTGROUP} ${BINDIR} ${CHMOD} 775 ${BINDIR} if [ ! -f ${BINDIR}/dnetc.sh ]; then \ @@ -73,7 +79,7 @@ do-install: fi ${INSTALL_MAN} ${WRKSRC}/${MAN1} ${PREFIX}/man/man1 - ${INSTALL} -c -m 644 -o ${CLIENTUID} -g ${CLIENTGID} ${WRKDIR}/dnetc.ini ${BINDIR}/dnetc.ini.default + ${INSTALL} -c -m 644 -o ${CLIENTUSER} -g ${CLIENTGROUP} ${WRKDIR}/dnetc.ini ${BINDIR}/dnetc.ini.default .if !exists(${BINDIR}/dnetc.ini) @echo "" @echo "" @@ -89,7 +95,7 @@ do-install: @echo "" @echo "" @echo "" - ${INSTALL} -c -m 644 -o ${CLIENTUID} -g ${CLIENTGID} ${WRKDIR}/dnetc.ini ${BINDIR} + ${INSTALL} -c -m 644 -o ${CLIENTUSER} -g ${CLIENTGROUP} ${WRKDIR}/dnetc.ini ${BINDIR} .endif .include <bsd.port.post.mk> diff --git a/misc/dnetc/files/dnetc.sh b/misc/dnetc/files/dnetc.sh index cccb86d..919e6f4 100644 --- a/misc/dnetc/files/dnetc.sh +++ b/misc/dnetc/files/dnetc.sh @@ -26,7 +26,7 @@ start) fi echo -n " dnetc" - su -m nobody -c "$dir/dnetc -quiet" 2>/dev/null >/dev/null & + su -m dnetc -c "$dir/dnetc -quiet" 2>/dev/null >/dev/null & ;; stop) killall dnetc && echo -n " dnetc" diff --git a/misc/dnetc/pkg-install b/misc/dnetc/pkg-install new file mode 100644 index 0000000..d837ae3 --- /dev/null +++ b/misc/dnetc/pkg-install @@ -0,0 +1,32 @@ +#!/bin/sh + +if [ "$2" != "PRE-INSTALL" ]; then + exit 0 +fi + +CLIENTUSER=$3 +CLIENTUID=$4 +CLIENTGROUP=$5 +CLIENTGID=$6 + +if ! pw groupshow "$CLIENTGROUP" 2>/dev/null 1>&2; then + if pw groupadd $CLIENTGROUP -g $CLIENTGID; then + echo "=> Added group \"$CLIENTGROUP\"." + else + echo "=> Adding group \"$CLIENTGROUP\" failed..." + exit 1 + fi +fi + +if ! pw usershow "$CLIENTUSER" 2>/dev/null 1>&2; then + if pw useradd $CLIENTUSER -u $CLIENTUID -g $CLIENTGROUP -h - \ + -s "/sbin/nologin" -d "/nonexistent" \ + -c "distributed.net client and proxy pseudo-user"; \ + then + echo "=> Added user \"$CLIENTUSER\"." + else + echo "=> Adding user \"$CLIENTUSER\" failed..." + exit 1 + fi +fi +exit 0 |