From 531e08b2394fb7935fdd128f52445e5191c8ca6b Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Sat, 13 Sep 2008 13:26:39 -0400 Subject: [PATCH] replace stat with ls (sigh) and make su more portable. --- debian/changelog | 6 +++++- src/common | 11 +++++------ src/monkeysphere-server | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/debian/changelog b/debian/changelog index bf7c219..13872bf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Thu, 11 Sep 2008 23:16:31 -0400 diff --git a/src/common b/src/common index 48739d9..22ed1b1 100644 --- a/src/common +++ b/src/common @@ -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 diff --git a/src/monkeysphere-server b/src/monkeysphere-server index 111f777..6798fab 100755 --- a/src/monkeysphere-server +++ b/src/monkeysphere-server @@ -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 -- 2.25.1