1#!/bin/sh 2# $FreeBSD: src/tools/regression/fstest/tests/chflags/10.t,v 1.1 2007/01/17 01:42:08 pjd Exp $ 3 4desc="chflags returns EPERM if non-super-user tries to set one of SF_IMMUTABLE, SF_APPEND" 5 6n0=`namegen` 7n1=`namegen` 8n2=`namegen` 9 10expect 0 mkdir ${n0} 0755 11cdir=`pwd` 12cd ${n0} 13 14expect 0 create ${n1} 0644 15expect 0 chown ${n1} 65534 65534 16for flag in SF_IMMUTABLE SF_APPEND; do 17 expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag} 18 expect none stat ${n1} flags 19 expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag} 20 expect none stat ${n1} flags 21done 22expect 0 unlink ${n1} 23 24expect 0 mkdir ${n1} 0755 25expect 0 chown ${n1} 65534 65534 26for flag in SF_IMMUTABLE SF_APPEND; do 27 expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag} 28 expect none stat ${n1} flags 29 expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag} 30 expect none stat ${n1} flags 31done 32expect 0 rmdir ${n1} 33 34expect 0 mkfifo ${n1} 0644 35expect 0 chown ${n1} 65534 65534 36for flag in SF_IMMUTABLE SF_APPEND; do 37 expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag} 38 expect none stat ${n1} flags 39 expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag} 40 expect none stat ${n1} flags 41done 42expect 0 unlink ${n1} 43 44expect 0 symlink ${n2} ${n1} 45expect 0 lchown ${n1} 65534 65534 46for flag in SF_IMMUTABLE SF_APPEND; do 47 expect EPERM -u 65533 -g 65533 lchflags ${n1} ${flag} 48 expect none lstat ${n1} flags 49 expect EPERM -u 65534 -g 65534 lchflags ${n1} ${flag} 50 expect none lstat ${n1} flags 51done 52expect 0 unlink ${n1} 53 54cd ${cdir} 55expect 0 rmdir ${n0} 56