| # Public Domain |
| # Zev Weiss, 2016 |
| # $OpenBSD: allow-deny-users.sh,v 1.5 2018/07/13 02:13:50 djm Exp $ |
| |
| tid="AllowUsers/DenyUsers" |
| |
| me="$LOGNAME" |
| if [ "x$me" = "x" ]; then |
| me=`whoami` |
| fi |
| other="nobody" |
| |
| cp $OBJ/sshd_proxy $OBJ/sshd_proxy.orig |
| |
| test_auth() |
| { |
| deny="$1" |
| allow="$2" |
| should_succeed="$3" |
| failmsg="$4" |
| |
| cp $OBJ/sshd_proxy.orig $OBJ/sshd_proxy |
| echo DenyUsers="$deny" >> $OBJ/sshd_proxy |
| echo AllowUsers="$allow" >> $OBJ/sshd_proxy |
| |
| start_sshd -oDenyUsers="$deny" -oAllowUsers="$allow" |
| |
| ${SSH} -F $OBJ/ssh_proxy "$me@somehost" true |
| status=$? |
| |
| if (test $status -eq 0 && ! $should_succeed) \ |
| || (test $status -ne 0 && $should_succeed); then |
| fail "$failmsg" |
| fi |
| } |
| |
| # DenyUsers AllowUsers should_succeed failure_message |
| test_auth "" "" true "user in neither DenyUsers nor AllowUsers denied" |
| test_auth "$other $me" "" false "user in DenyUsers allowed" |
| test_auth "$me $other" "" false "user in DenyUsers allowed" |
| test_auth "" "$other" false "user not in AllowUsers allowed" |
| test_auth "" "$other $me" true "user in AllowUsers denied" |
| test_auth "" "$me $other" true "user in AllowUsers denied" |
| test_auth "$me $other" "$me $other" false "user in both DenyUsers and AllowUsers allowed" |
| test_auth "$other $me" "$other $me" false "user in both DenyUsers and AllowUsers allowed" |