replace stat with ls (sigh) and make su more portable.
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Sat, 13 Sep 2008 17:26:39 +0000 (13:26 -0400)
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Sat, 13 Sep 2008 17:26:39 +0000 (13:26 -0400)
debian/changelog
src/common
src/monkeysphere-server

index bf7c21920a8daece8a85a574e5dd3dbf56814e48..13872bfc037aa432b47f8df31971f8b77e97e7d8 100644 (file)
@@ -4,7 +4,11 @@ monkeysphere (0.16~pre-1) UNRELEASED; urgency=low
   * replaced "#!/bin/bash" with "#!/usr/bin/env bash" for better
     portability.
   * fixed busted lockfile arrangement, where empty file was being locked
-  * portability fixes for date, mktemp, hostname
+  * portability fixes in the way we use date, mktemp, hostname, su
+  * stop using stat, since the syntax appears to be totally unportable
+  * require GNU getopt, and test for getopt failures (look for getopt in
+    /usr/local/bin first, since that's where FreeBSD's GNU-compatible
+    getopt lives.
 
  -- Daniel Kahn Gillmor <dkg@fifthhorseman.net>  Thu, 11 Sep 2008 23:16:31 -0400
 
index 48739d92d8639056c59295cf6fba0585df162eec..22ed1b15dd5580e318d5fd20ae3b201f6679f213 100644 (file)
@@ -399,9 +399,9 @@ check_key_file_permissions() {
     local gAccess
     local oAccess
 
-    # function to check that an octal corresponds to writability
+    # function to check that the given permission corresponds to writability
     is_write() {
-       [ "$1" -eq 2 -o "$1" -eq 3 -o "$1" -eq 6 -o "$1" -eq 7 ]
+       [ "$1" = "w" ]
     }
 
     user="$1"
@@ -410,10 +410,9 @@ check_key_file_permissions() {
     # return 0 is path does not exist
     [ -e "$path" ] || return 0
 
-    owner=$(stat --format '%U' "$path")
-    access=$(stat --format '%a' "$path")
-    gAccess=$(echo "$access" | cut -c2)
-    oAccess=$(echo "$access" | cut -c3)
+    owner=$(ls -l "$path" | awk '{ print $3 }')
+    gAccess=$(ls -l "$path" | cut -c6)
+    oAccess=$(ls -l "$path" | cut -c9)
 
     # check owner
     if [ "$owner" != "$user" -a "$owner" != 'root' ] ; then
index 111f77723ff1797c543d35d547968125b842b16a..6798fab185da534060695843f09efbe12a676c3e 100755 (executable)
@@ -67,7 +67,7 @@ EOF
 }
 
 su_monkeysphere_user() {
-    su --preserve-environment "$MONKEYSPHERE_USER" -- -c "$@"
+    su -m "$MONKEYSPHERE_USER" -c "$@"
 }
 
 # function to interact with the host gnupg keyring
@@ -642,7 +642,7 @@ diagnostics() {
        if [ ! -s "${VARLIB}/ssh_host_rsa_key" ] ; then
            echo "! The host key as prepared for SSH (${VARLIB}/ssh_host_rsa_key) is missing or empty."
        else
-           if [ $(stat -c '%a' "${VARLIB}/ssh_host_rsa_key") != 600 ] ; then
+           if [ $(ls -l "${VARLIB}/ssh_host_rsa_key" | cut -f1 -d\ ) != '-rw-------' ] ; then
                echo "! Permissions seem wrong for ${VARLIB}/ssh_host_rsa_key -- should be 0600."
            fi