* 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
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"
# 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
}
su_monkeysphere_user() {
- su --preserve-environment "$MONKEYSPHERE_USER" -- -c "$@"
+ su -m "$MONKEYSPHERE_USER" -c "$@"
}
# function to interact with the host gnupg keyring
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