04.t revision 196948
1#!/bin/sh 2# $FreeBSD: head/tools/regression/fstest/tests/granular/04.t 196948 2009-09-07 19:40:22Z trasz $ 3 4desc="NFSv4 granular permissions checking - ACL_WRITE_OWNER" 5 6dir=`dirname $0` 7. ${dir}/../misc.sh 8 9echo "1..52" 10 11n0=`namegen` 12n1=`namegen` 13n2=`namegen` 14 15expect 0 mkdir ${n2} 0755 16cdir=`pwd` 17cd ${n2} 18 19# ACL_WRITE_OWNER permits to set gid to our own only. 20expect 0 create ${n0} 0644 21expect 0,0 lstat ${n0} uid,gid 22expect EPERM -u 65534 -g 65532,65531 chown ${n0} -1 65532 23expect 0,0 lstat ${n0} uid,gid 24expect 0 prependacl ${n0} user:65534:write_owner::allow 25expect EPERM -u 65534 -g 65532,65531 chown ${n0} -1 65530 26expect 0,0 lstat ${n0} uid,gid 27expect 0 -u 65534 -g 65532,65531 chown ${n0} -1 65532 28expect 0,65532 lstat ${n0} uid,gid 29expect 0 unlink ${n0} 30 31# ACL_WRITE_OWNER permits to set uid to our own only. 32expect 0 create ${n0} 0644 33expect 0,0 lstat ${n0} uid,gid 34expect EPERM -u 65534 -g 65532,65531 chown ${n0} 65534 65531 35expect 0,0 lstat ${n0} uid,gid 36expect 0 prependacl ${n0} user:65534:write_owner::allow 37expect EPERM -u 65534 -g 65532,65531 chown ${n0} 65530 65531 38expect 0,0 lstat ${n0} uid,gid 39expect 0 -u 65534 -g 65532,65531 chown ${n0} 65534 65531 40expect 65534,65531 lstat ${n0} uid,gid 41expect 0 unlink ${n0} 42 43# When non-owner calls chown(2) successfully, set-uid and set-gid bits are 44# removed, except when both uid and gid are equal to -1. 45expect 0 create ${n0} 0644 46expect 0 prependacl ${n0} user:65534:write_owner::allow 47expect 0 chmod ${n0} 06555 48expect 06555 lstat ${n0} mode 49expect 0 -u 65534 -g 65533,65532 chown ${n0} 65534 65532 50expect 0555,65534,65532 lstat ${n0} mode,uid,gid 51expect 0 chmod ${n0} 06555 52expect 06555 lstat ${n0} mode 53expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 65533 54expect 0555,65534,65533 lstat ${n0} mode,uid,gid 55expect 0 chmod ${n0} 06555 56expect 06555 lstat ${n0} mode 57expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 -1 58expect 06555,65534,65533 lstat ${n0} mode,uid,gid 59expect 0 unlink ${n0} 60 61expect 0 mkdir ${n0} 0755 62expect 0 prependacl ${n0} user:65534:write_owner::allow 63expect 0 chmod ${n0} 06555 64expect 06555 lstat ${n0} mode 65expect 0 -u 65534 -g 65533,65532 chown ${n0} 65534 65532 66expect 0555,65534,65532 lstat ${n0} mode,uid,gid 67expect 0 chmod ${n0} 06555 68expect 06555 lstat ${n0} mode 69expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 65533 70expect 0555,65534,65533 lstat ${n0} mode,uid,gid 71expect 0 chmod ${n0} 06555 72expect 06555 lstat ${n0} mode 73expect 0 -u 65534 -g 65533,65532 chown ${n0} -1 -1 74expect 06555,65534,65533 lstat ${n0} mode,uid,gid 75expect 0 rmdir ${n0} 76 77cd ${cdir} 78expect 0 rmdir ${n2} 79