00.t revision 196948
1#!/bin/sh 2# $FreeBSD: head/tools/regression/fstest/tests/granular/00.t 196948 2009-09-07 19:40:22Z trasz $ 3 4desc="NFSv4 granular permissions checking - WRITE_DATA vs APPEND_DATA on directories" 5 6dir=`dirname $0` 7. ${dir}/../misc.sh 8 9echo "1..49" 10 11n0=`namegen` 12n1=`namegen` 13n2=`namegen` 14n3=`namegen` 15 16expect 0 mkdir ${n2} 0755 17expect 0 mkdir ${n3} 0777 18cdir=`pwd` 19cd ${n2} 20 21# Tests 2..7 - check out whether root user can do stuff. 22# Can create files? 23expect 0 create ${n0} 0644 24 25# Can create symlinks? 26expect 0 link ${n0} ${n1} 27expect 0 unlink ${n1} 28expect 0 unlink ${n0} 29 30# Can create directories? 31expect 0 mkdir ${n0} 0755 32expect 0 rmdir ${n0} 33 34# Check whether user 65534 is permitted to create and remove 35# files, but not subdirectories. 36expect 0 prependacl . user:65534:write_data::allow,user:65534:append_data::deny 37 38# Can create files? 39expect 0 -u 65534 -g 65534 create ${n0} 0644 40 41# Can create symlinks? 42expect 0 -u 65534 -g 65534 link ${n0} ${n1} 43expect 0 -u 65534 -g 65534 unlink ${n1} 44expect 0 -u 65534 -g 65534 unlink ${n0} 45 46# Can create directories? 47expect EACCES -u 65534 -g 65534 mkdir ${n0} 0755 48expect ENOENT -u 65534 -g 65534 rmdir ${n0} 49expect 0 mkdir ${n0} 0755 50expect 0 -u 65534 -g 65534 rmdir ${n0} 51 52# Can move files from other directory? 53expect 0 create ../${n3}/${n1} 0644 54expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 55 56# Can move files from other directory overwriting existing files? 57expect 0 create ../${n3}/${n1} 0644 58expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 59 60expect 0 -u 65534 -g 65534 unlink ${n0} 61 62# Can move directories from other directory? 63expect 0 mkdir ../${n3}/${n1} 0777 64expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 65 66# Can move directories from other directory overwriting existing directory? 67expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 68expect 0 -u 65534 -g 65534 rmdir ../${n3}/${n1} 69 70# Check whether user 65534 is permitted to create 71# subdirectories, but not files - and to remove neither of them. 72expect 0 prependacl . user:65534:write_data::deny,user:65534:append_data::allow 73 74# Can create files? 75expect EACCES -u 65534 -g 65534 create ${n0} 0644 76 77# Can create symlinks? 78expect 0 create ${n0} 0644 79expect EACCES -u 65534 -g 65534 link ${n0} ${n1} 80expect ENOENT -u 65534 -g 65534 unlink ${n1} 81expect EACCES -u 65534 -g 65534 unlink ${n0} 82expect 0 unlink ${n0} 83 84# Can create directories? 85expect 0 -u 65534 -g 65534 mkdir ${n0} 0755 86expect EACCES -u 65534 -g 65534 rmdir ${n0} 87expect 0 rmdir ${n0} 88 89# Can move files from other directory? 90expect 0 create ../${n3}/${n1} 0644 91expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 92 93# Can move files from other directory overwriting existing files? 94expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 95expect 0 -u 65534 -g 65534 unlink ../${n3}/${n1} 96 97# Can move directories from other directory? 98expect 0 mkdir ../${n3}/${n1} 0777 99expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 100 101# Can move directories from other directory overwriting existing directory? 102expect 0 mkdir ../${n3}/${n1} 0777 103expect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 104expect 0 prependacl . user:65534:delete_child::allow 105expect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 106expect 0 -u 65534 -g 65534 rmdir ${n0} 107 108cd ${cdir} 109expect 0 rmdir ${n2} 110expect 0 rmdir ${n3} 111