Whamcloud - gitweb
debian: parse /etc/adduser.conf file manually
authorTheodore Ts'o <tytso@mit.edu>
Mon, 23 Jun 2008 15:57:54 +0000 (11:57 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 23 Jun 2008 15:57:54 +0000 (11:57 -0400)
The syntax for /etc/adduser.conf allows spaces around the equals sign,
i.e.:

GROUPHOMES = no

We were previously asking /bin/sh to source the file, which doesn't
support the above syntax.  So pull out the necessary fields via
sed/grep.

Thanks to Juan A. Diaz for reporting the bug and suggesting the fix.

Addresses-Debian-Bug: #487443

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
debian/libuuid1.postinst

index ccbd881..27ca205 100644 (file)
@@ -2,13 +2,26 @@
 
 set -e
 
-FIRST_SYSTEM_UID=100
-LAST_SYSTEM_UID=999
-FIRST_SYSTEM_GID=100
-LAST_SYSTEM_GID=999
+ADDUSERCONF='/etc/adduser.conf'
 
-if test -f /etc/adduser.conf; then
-   . /etc/adduser.conf
+if test -f $ADDUSERCONF; then
+    FIRST_SYSTEM_UID=$(sed -n "s/^[[:space:]]*FIRST_SYSTEM_UID[[:space:]]*=[[:space:]]*[\"']\?\([^\"']*\)[\"']\?/\1/p" $ADDUSERCONF)
+    LAST_SYSTEM_UID=$(sed -n "s/^[[:space:]]*LAST_SYSTEM_UID[[:space:]]*=[[:space:]]*[\"']\?\([^\"']*\)[\"']\?/\1/p" $ADDUSERCONF)
+    FIRST_SYSTEM_GID=$(sed -n "s/^[[:space:]]*FIRST_SYSTEM_GID[[:space:]]*=[[:space:]]*[\"']\?\([^\"']*\)[\"']\?/\1/p" $ADDUSERCONF)
+    LAST_SYSTEM_GID=$(sed -n "s/^[[:space:]]*LAST_SYSTEM_GID[[:space:]]*=[[:space:]]*[\"']\?\([^\"']*\)[\"']\?/\1/p" $ADDUSERCONF)
+fi
+
+if test -z "$FIRST_SYSTEM_UID"; then
+    FIRST_SYSTEM_UID=100
+fi
+if test -z "$LAST_SYSTEM_UID"; then
+    LAST_SYSTEM_UID=999
+fi
+if test -z "$FIRST_SYSTEM_GID"; then
+    FIRST_SYSTEM_GID=100
+fi
+if test -z "$LAST_SYSTEM_GID"; then
+    LAST_SYSTEM_GID=999
 fi
 
 groupadd -f -K GID_MIN=$FIRST_SYSTEM_GID -K GID_MAX=$LAST_SYSTEM_GID libuuid