agent-getpeereid.sh revision 180720
1215976Sjmallett#	$OpenBSD: agent-getpeereid.sh,v 1.3 2006/07/06 12:01:53 grunk Exp $
2215976Sjmallett#	Placed in the Public Domain.
3215976Sjmallett
4215976Sjmalletttid="disallow agent attach from other uid"
5215976Sjmallett
6215976SjmallettUNPRIV=nobody
7215976SjmallettASOCK=${OBJ}/agent
8215976SjmallettSSH_AUTH_SOCK=/nonexistant
9215976Sjmallett
10215976Sjmallettif grep "#undef.*HAVE_GETPEEREID" ${BUILDDIR}/config.h >/dev/null 2>&1
11215976Sjmallettthen
12215976Sjmallett	echo "skipped (not supported on this platform)"
13215976Sjmallett	exit 0
14215976Sjmallettfi
15215976Sjmallettif [ -z "$SUDO" ]; then
16215976Sjmallett	echo "skipped: need SUDO to switch to uid $UNPRIV"
17215976Sjmallett	exit 0
18215976Sjmallettfi
19215976Sjmallett
20215976Sjmallett
21215976Sjmalletttrace "start agent"
22215976Sjmalletteval `${SSHAGENT} -s -a ${ASOCK}` > /dev/null
23215976Sjmallettr=$?
24215976Sjmallettif [ $r -ne 0 ]; then
25215976Sjmallett	fail "could not start ssh-agent: exit code $r"
26215976Sjmallettelse
27215976Sjmallett	chmod 644 ${SSH_AUTH_SOCK}
28215976Sjmallett
29215976Sjmallett	ssh-add -l > /dev/null 2>&1
30215976Sjmallett	r=$?
31215976Sjmallett	if [ $r -ne 1 ]; then
32215976Sjmallett		fail "ssh-add failed with $r != 1"
33215976Sjmallett	fi
34215976Sjmallett
35215976Sjmallett	< /dev/null ${SUDO} -S -u ${UNPRIV} ssh-add -l > /dev/null 2>&1
36215976Sjmallett	r=$?
37215976Sjmallett	if [ $r -lt 2 ]; then
38215976Sjmallett		fail "ssh-add did not fail for ${UNPRIV}: $r < 2"
39215976Sjmallett	fi
40215976Sjmallett
41215976Sjmallett	trace "kill agent"
42215976Sjmallett	${SSHAGENT} -k > /dev/null
43215976Sjmallettfi
44215976Sjmallett
45215976Sjmallettrm -f ${OBJ}/agent
46215976Sjmallett