mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-13 03:51:32 +02:00
add static uid, but handle squashfs rootfs systems correctly
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@469 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
33c0b5dcd4
commit
b1d8aab6c4
@ -1,25 +1,35 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
name=ntp
|
||||||
|
id=50
|
||||||
|
|
||||||
|
# do not change below
|
||||||
|
# check if we are on real system
|
||||||
|
if [ -z "${IPKG_INSTROOT}" ]; then
|
||||||
|
# create copies of passwd and group, if we use squashfs
|
||||||
|
rootfs=`mount |awk '/root/ { print $5 }'`
|
||||||
|
if [ "$rootfs" = "squashfs" ]; then
|
||||||
|
if [ -h /etc/group ]; then
|
||||||
|
rm /etc/group
|
||||||
|
cp /rom/etc/group /etc/group
|
||||||
|
fi
|
||||||
|
if [ -h /etc/passwd ]; then
|
||||||
|
rm /etc/passwd
|
||||||
|
cp /rom/etc/passwd /etc/passwd
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
if [ -z "$(grep ^\\${name}: ${IPKG_INSTROOT}/etc/group)" ]; then
|
||||||
|
echo "adding group $name to /etc/group"
|
||||||
|
echo "${name}:x:${id}:" >> ${IPKG_INSTROOT}/etc/group
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$(grep ^\\${name}: ${IPKG_INSTROOT}/etc/passwd)" ]; then
|
||||||
|
echo "adding user $name to /etc/passwd"
|
||||||
|
echo "${name}:x:${id}:${id}:${name}:/tmp/.${name}:/bin/false" >> ${IPKG_INSTROOT}/etc/passwd
|
||||||
|
fi
|
||||||
|
|
||||||
grep -q '^ntp[[:space:]]*123/udp' ${IPKG_INSTROOT}/etc/services 2>/dev/null
|
grep -q '^ntp[[:space:]]*123/udp' ${IPKG_INSTROOT}/etc/services 2>/dev/null
|
||||||
[ $? -ne 0 ] && echo "ntp 123/udp" >>${IPKG_INSTROOT}/etc/services
|
[ $? -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
|
|
||||||
|
Loading…
Reference in New Issue
Block a user