fixup openntpd package. ntpd now starts as user ntp and
[openwrt.git] / openwrt / package / openntpd / ipkg / CONTROL / postinst
diff --git a/openwrt/package/openntpd/ipkg/CONTROL/postinst b/openwrt/package/openntpd/ipkg/CONTROL/postinst
new file mode 100755 (executable)
index 0000000..8881116
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/sh
+grep -q '^ntp[[:space:]]*123/udp' ${IPKG_INSTROOT}/etc/services 2>/dev/null
+[ $? -ne 0 ] && echo "ntp      123/udp" >>${IPKG_INSTROOT}/etc/services
+
+NU=ntp
+U=`grep "^$NU:" ${IPKG_INSTROOT}/etc/passwd 2>/dev/null | cut -d: -f3`
+if [ .$U = . ]; then
+       U=`cut -d: -f3 ${IPKG_INSTROOT}/etc/passwd 2>/dev/null | sort -n | tail -1`
+       [ .$U = . ] && U=49
+       U=`expr $U + 1`
+       [ $U -lt 50 ] && U=50
+       G=`grep "^$NU:" ${IPKG_INSTROOT}/etc/group 2>/dev/null | cut -d: -f3`
+       if [ .$G = . ]; then
+               G=`cut -d: -f3 ${IPKG_INSTROOT}/etc/group 2>/dev/null | sort -n | tail -1`
+               [ .$G = . ] && G=49
+               G=`expr $G + 1`
+               [ $G -lt 50 ] && G=50
+       fi
+       LINE="$NU:x:$U:$G::/tmp/.ntp:/bin/false"
+       echo "$LINE" >>${IPKG_INSTROOT}/etc/passwd
+else
+       awk -F: '{ if($1=="ntp") printf("%s:%s:%s:%s:%s:/tmp/.ntp:/bin/false\n",$1,$2,$3,$4,$5); else print $0 }' ${IPKG_INSTROOT}/etc/passwd >/tmp/$$
+       mv /tmp/$$ ${IPKG_INSTROOT}/etc/passwd
+       chmod 644 ${IPKG_INSTROOT}/etc/passwd
+fi