diff --git a/dev/tests/sudo_prep.sh b/dev/tests/sudo_prep.sh index b80227c..a8eabae 100755 --- a/dev/tests/sudo_prep.sh +++ b/dev/tests/sudo_prep.sh @@ -3,6 +3,32 @@ testUser=osyncsudo testUserHome=/home/osyncsudo +function CreateUser { + local remoteUser"${1}" + + if type getent > /dev/null 2>&1; then + if ! getent passwd | grep "$remoteUser" > /dev/null; then + echo "Manual creation of $remoteUser with homedir $remoteUserHome" + if type adduser >/dev/null 2>&1; then + adduser "$remoteUser" + else + echo "Cannot create user $remoteUser. Don't know what tool to use !" + fi + else + echo "It seems that $remoteUser already exists" + fi + elif type dscl > /dev/null 2>&1; then + if ! dscl . -search /Users name $remoteUser | grep "$remoteUser" > /dev/null; then + echo "Manual creation of $remoteUser with homedir $remoteUserHome" + dscl . -create /Users/$remoteUser + else + echo "It seems that $remoteUser already exists" + fi + else + echo "Well, I don't know what tool to use to create that user for you" + fi +} + function SetupSSH { local remoteUser="${1}" local homedir="${2}" @@ -21,7 +47,7 @@ function SetupSSH { exit 1 fi - chown $testUser "$homedir/.ssh" + chown $remoteUser "$homedir/.ssh" if [ $? != 0 ]; then echo "Cannot chown [$homedir/.ssh]." exit 1 @@ -90,6 +116,8 @@ function RemoveUser { rmuser -y $remoteUser elif type userdel > /dev/null 2>&1; then userdel -fr $remoteUser + elif type dscl > /dev/null 2>&1; then + dscl . -delete "Users/$remoteUser" else echo "Please remove $remoteUser manually" fi @@ -110,13 +138,7 @@ function RemoveSudoers { } if [ "$1" == "set" ]; then - if ! getent passwd | grep "$testUser" > /dev/null; then - echo "Manual creation of $testUser with homedir $testUserHome" - adduser "$testUser" - else - echo "It seems that $testUser already exists" - fi - + CreateUser "$testUser" SetupSSH "$testUser" "$testUserHome" PrepareSudoers "$testUser" echo ""