xref: /freebsd/contrib/pjdfstest/tests/granular/04.t (revision 531c2d7af3cd2e64eec94aa1b19c4b2f16fce515)
140a8ac8fSEnji Cooper#!/bin/sh
2*3416500aSEnji Cooper# vim: filetype=sh noexpandtab ts=8 sw=8
340a8ac8fSEnji Cooper# $FreeBSD: head/tools/regression/pjdfstest/tests/granular/04.t 211352 2010-08-15 21:24:17Z pjd $
440a8ac8fSEnji Cooper
540a8ac8fSEnji Cooperdesc="NFSv4 granular permissions checking - ACL_WRITE_OWNER"
640a8ac8fSEnji Cooper
740a8ac8fSEnji Cooperdir=`dirname $0`
840a8ac8fSEnji Cooper. ${dir}/../misc.sh
940a8ac8fSEnji Cooper
10*3416500aSEnji Coopernfsv4acls || quick_exit
1140a8ac8fSEnji Cooper
12*3416500aSEnji Cooperecho "1..22"
1340a8ac8fSEnji Cooper
1440a8ac8fSEnji Coopern0=`namegen`
1540a8ac8fSEnji Coopern2=`namegen`
1640a8ac8fSEnji Cooper
1740a8ac8fSEnji Cooperexpect 0 mkdir ${n2} 0755
1840a8ac8fSEnji Coopercdir=`pwd`
1940a8ac8fSEnji Coopercd ${n2}
2040a8ac8fSEnji Cooper
2140a8ac8fSEnji Cooper# ACL_WRITE_OWNER permits to set gid to our own only.
2240a8ac8fSEnji Cooperexpect 0 create ${n0} 0644
2340a8ac8fSEnji Cooperexpect 0,0 lstat ${n0} uid,gid
2440a8ac8fSEnji Cooperexpect EPERM -u 65534 -g 65532,65531 chown ${n0} -1 65532
2540a8ac8fSEnji Cooperexpect 0,0 lstat ${n0} uid,gid
2640a8ac8fSEnji Cooperexpect 0 prependacl ${n0} user:65534:write_owner::allow
2740a8ac8fSEnji Cooperexpect EPERM -u 65534 -g 65532,65531 chown ${n0} -1 65530
2840a8ac8fSEnji Cooperexpect 0,0 lstat ${n0} uid,gid
2940a8ac8fSEnji Cooperexpect 0 -u 65534 -g 65532,65531 chown ${n0} -1 65532
3040a8ac8fSEnji Cooperexpect 0,65532 lstat ${n0} uid,gid
3140a8ac8fSEnji Cooperexpect 0 unlink ${n0}
3240a8ac8fSEnji Cooper
3340a8ac8fSEnji Cooper# ACL_WRITE_OWNER permits to set uid to our own only.
3440a8ac8fSEnji Cooperexpect 0 create ${n0} 0644
3540a8ac8fSEnji Cooperexpect 0,0 lstat ${n0} uid,gid
3640a8ac8fSEnji Cooperexpect EPERM -u 65534 -g 65532,65531 chown ${n0} 65534 65531
3740a8ac8fSEnji Cooperexpect 0,0 lstat ${n0} uid,gid
3840a8ac8fSEnji Cooperexpect 0 prependacl ${n0} user:65534:write_owner::allow
3940a8ac8fSEnji Cooperexpect EPERM -u 65534 -g 65532,65531 chown ${n0} 65530 65531
4040a8ac8fSEnji Cooperexpect 0,0 lstat ${n0} uid,gid
4140a8ac8fSEnji Cooperexpect 0 -u 65534 -g 65532,65531 chown ${n0} 65534 65531
4240a8ac8fSEnji Cooperexpect 65534,65531 lstat ${n0} uid,gid
4340a8ac8fSEnji Cooperexpect 0 unlink ${n0}
4440a8ac8fSEnji Cooper
4540a8ac8fSEnji Coopercd ${cdir}
4640a8ac8fSEnji Cooperexpect 0 rmdir ${n2}
47