diff --git a/files/create-sftp-user b/files/create-sftp-user index f50d3d5..5df16b7 100755 --- a/files/create-sftp-user +++ b/files/create-sftp-user @@ -36,21 +36,21 @@ skipIndex=0 chpasswdOptions="" useraddOptions=(--no-user-group) -user="${args[0]}"; validateArg "username" "$user" "$reUser" || return 1 -pass="${args[1]}"; validateArg "password" "$pass" "$rePass" || return 1 +user="${args[0]}"; validateArg "username" "$user" "$reUser" || exit 1 +pass="${args[1]}"; validateArg "password" "$pass" "$rePass" || exit 1 if [ "${args[2]}" == "e" ]; then chpasswdOptions="-e" skipIndex=1 fi -uid="${args[$((skipIndex+2))]}"; validateArg "UID" "$uid" "$reUid" || return 1 -gid="${args[$((skipIndex+3))]}"; validateArg "GID" "$gid" "$reGid" || return 1 -dir="${args[$((skipIndex+4))]}"; validateArg "dirs" "$dir" "$reDir" || return 1 +uid="${args[$((skipIndex+2))]}"; validateArg "UID" "$uid" "$reUid" || exit 1 +gid="${args[$((skipIndex+3))]}"; validateArg "GID" "$gid" "$reGid" || exit 1 +dir="${args[$((skipIndex+4))]}"; validateArg "dirs" "$dir" "$reDir" || exit 1 if getent passwd "$user" > /dev/null; then log "WARNING: User \"$user\" already exists. Skipping." - return 0 + exit 0 fi if [ -n "$uid" ]; then diff --git a/tests/run b/tests/run index 79cd3a5..6f92d84 100755 --- a/tests/run +++ b/tests/run @@ -253,22 +253,25 @@ function testCreateUsersUsingCombo() { function testWriteAccessToAutocreatedDirs() { docker run --name "$containerName" -d \ -v "/tmp/atmoz_sftp_test_rsa.pub":/home/test/.ssh/keys/id_rsa.pub:ro \ - "$imageName" test::::dir1,dir2 \ + "$imageName" "test::::testdir,dir with spaces" \ > "$redirect" 2>&1 waitForServer "$containerName" assertTrue "waitForServer" $? runSftpCommands "$containerName" "test" \ - "cd dir1" \ + "cd testdir" \ "mkdir test" \ - "cd ../dir2" \ + "cd '../dir with spaces'" \ "mkdir test" \ "exit" assertTrue "runSftpCommands" $? - docker exec "$containerName" test -d /home/test/dir1/test -a -d /home/test/dir2/test - assertTrue "dirs exists" $? + docker exec "$containerName" test -d /home/test/testdir/test + assertTrue "testdir write access" $? + + docker exec "$containerName" test -d "/home/test/dir with spaces/test" + assertTrue "dir with spaces write access" $? } function testBindmountDirScript() {