00.t revision 196948
1196948Strasz#!/bin/sh 2196948Strasz# $FreeBSD: head/tools/regression/fstest/tests/granular/00.t 196948 2009-09-07 19:40:22Z trasz $ 3196948Strasz 4196948Straszdesc="NFSv4 granular permissions checking - WRITE_DATA vs APPEND_DATA on directories" 5196948Strasz 6196948Straszdir=`dirname $0` 7196948Strasz. ${dir}/../misc.sh 8196948Strasz 9196948Straszecho "1..49" 10196948Strasz 11196948Straszn0=`namegen` 12196948Straszn1=`namegen` 13196948Straszn2=`namegen` 14196948Straszn3=`namegen` 15196948Strasz 16196948Straszexpect 0 mkdir ${n2} 0755 17196948Straszexpect 0 mkdir ${n3} 0777 18196948Straszcdir=`pwd` 19196948Straszcd ${n2} 20196948Strasz 21196948Strasz# Tests 2..7 - check out whether root user can do stuff. 22196948Strasz# Can create files? 23196948Straszexpect 0 create ${n0} 0644 24196948Strasz 25196948Strasz# Can create symlinks? 26196948Straszexpect 0 link ${n0} ${n1} 27196948Straszexpect 0 unlink ${n1} 28196948Straszexpect 0 unlink ${n0} 29196948Strasz 30196948Strasz# Can create directories? 31196948Straszexpect 0 mkdir ${n0} 0755 32196948Straszexpect 0 rmdir ${n0} 33196948Strasz 34196948Strasz# Check whether user 65534 is permitted to create and remove 35196948Strasz# files, but not subdirectories. 36196948Straszexpect 0 prependacl . user:65534:write_data::allow,user:65534:append_data::deny 37196948Strasz 38196948Strasz# Can create files? 39196948Straszexpect 0 -u 65534 -g 65534 create ${n0} 0644 40196948Strasz 41196948Strasz# Can create symlinks? 42196948Straszexpect 0 -u 65534 -g 65534 link ${n0} ${n1} 43196948Straszexpect 0 -u 65534 -g 65534 unlink ${n1} 44196948Straszexpect 0 -u 65534 -g 65534 unlink ${n0} 45196948Strasz 46196948Strasz# Can create directories? 47196948Straszexpect EACCES -u 65534 -g 65534 mkdir ${n0} 0755 48196948Straszexpect ENOENT -u 65534 -g 65534 rmdir ${n0} 49196948Straszexpect 0 mkdir ${n0} 0755 50196948Straszexpect 0 -u 65534 -g 65534 rmdir ${n0} 51196948Strasz 52196948Strasz# Can move files from other directory? 53196948Straszexpect 0 create ../${n3}/${n1} 0644 54196948Straszexpect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 55196948Strasz 56196948Strasz# Can move files from other directory overwriting existing files? 57196948Straszexpect 0 create ../${n3}/${n1} 0644 58196948Straszexpect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 59196948Strasz 60196948Straszexpect 0 -u 65534 -g 65534 unlink ${n0} 61196948Strasz 62196948Strasz# Can move directories from other directory? 63196948Straszexpect 0 mkdir ../${n3}/${n1} 0777 64196948Straszexpect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 65196948Strasz 66196948Strasz# Can move directories from other directory overwriting existing directory? 67196948Straszexpect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 68196948Straszexpect 0 -u 65534 -g 65534 rmdir ../${n3}/${n1} 69196948Strasz 70196948Strasz# Check whether user 65534 is permitted to create 71196948Strasz# subdirectories, but not files - and to remove neither of them. 72196948Straszexpect 0 prependacl . user:65534:write_data::deny,user:65534:append_data::allow 73196948Strasz 74196948Strasz# Can create files? 75196948Straszexpect EACCES -u 65534 -g 65534 create ${n0} 0644 76196948Strasz 77196948Strasz# Can create symlinks? 78196948Straszexpect 0 create ${n0} 0644 79196948Straszexpect EACCES -u 65534 -g 65534 link ${n0} ${n1} 80196948Straszexpect ENOENT -u 65534 -g 65534 unlink ${n1} 81196948Straszexpect EACCES -u 65534 -g 65534 unlink ${n0} 82196948Straszexpect 0 unlink ${n0} 83196948Strasz 84196948Strasz# Can create directories? 85196948Straszexpect 0 -u 65534 -g 65534 mkdir ${n0} 0755 86196948Straszexpect EACCES -u 65534 -g 65534 rmdir ${n0} 87196948Straszexpect 0 rmdir ${n0} 88196948Strasz 89196948Strasz# Can move files from other directory? 90196948Straszexpect 0 create ../${n3}/${n1} 0644 91196948Straszexpect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 92196948Strasz 93196948Strasz# Can move files from other directory overwriting existing files? 94196948Straszexpect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 95196948Straszexpect 0 -u 65534 -g 65534 unlink ../${n3}/${n1} 96196948Strasz 97196948Strasz# Can move directories from other directory? 98196948Straszexpect 0 mkdir ../${n3}/${n1} 0777 99196948Straszexpect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 100196948Strasz 101196948Strasz# Can move directories from other directory overwriting existing directory? 102196948Straszexpect 0 mkdir ../${n3}/${n1} 0777 103196948Straszexpect EACCES -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 104196948Straszexpect 0 prependacl . user:65534:delete_child::allow 105196948Straszexpect 0 -u 65534 -g 65534 rename ../${n3}/${n1} ${n0} 106196948Straszexpect 0 -u 65534 -g 65534 rmdir ${n0} 107196948Strasz 108196948Straszcd ${cdir} 109196948Straszexpect 0 rmdir ${n2} 110196948Straszexpect 0 rmdir ${n3} 111