10.t revision 271294
1208963Srdivacky#!/bin/sh 2208963Srdivacky# $FreeBSD: head/tools/regression/pjdfstest/tests/chflags/10.t 211352 2010-08-15 21:24:17Z pjd $ 3246259Sdim 4246259Sdimdesc="chflags returns EPERM if non-super-user tries to set one of SF_IMMUTABLE, SF_APPEND, or SF_NOUNLINK" 5208963Srdivacky 6208963Srdivackydir=`dirname $0` 7208963Srdivacky. ${dir}/../misc.sh 8210299Sed 9210299Sedrequire chflags 10210299Sed 11210299Sedecho "1..197" 12210299Sed 13210299Sedn0=`namegen` 14210299Sedn1=`namegen` 15263508Sdimn2=`namegen` 16210299Sed 17210299Sedexpect 0 mkdir ${n0} 0755 18210299Sedcdir=`pwd` 19210299Sedcd ${n0} 20234353Sdim 21234353Sdimfor type in regular dir fifo block char socket symlink; do 22208963Srdivacky if [ "${type}" != "symlink" ]; then 23210299Sed create_file ${type} ${n1} 24210299Sed expect 0 chown ${n1} 65534 65534 25210299Sed for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do 26263508Sdim expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag} 27210299Sed expect none stat ${n1} flags 28208963Srdivacky expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag} 29208963Srdivacky expect none stat ${n1} flags 30 done 31 if [ "${type}" = "dir" ]; then 32 expect 0 rmdir ${n1} 33 else 34 expect 0 unlink ${n1} 35 fi 36 fi 37 38 create_file ${type} ${n1} 39 expect 0 lchown ${n1} 65534 65534 40 for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do 41 expect EPERM -u 65533 -g 65533 lchflags ${n1} ${flag} 42 expect none lstat ${n1} flags 43 expect EPERM -u 65534 -g 65534 lchflags ${n1} ${flag} 44 expect none lstat ${n1} flags 45 done 46 if [ "${type}" = "dir" ]; then 47 expect 0 rmdir ${n1} 48 else 49 expect 0 unlink ${n1} 50 fi 51done 52 53cd ${cdir} 54expect 0 rmdir ${n0} 55