1#!/bin/sh
2# $FreeBSD: src/tools/regression/fstest/tests/chflags/09.t,v 1.1 2007/01/17 01:42:08 pjd Exp $
3
4desc="chflags returns EPERM when one of SF_IMMUTABLE or SF_APPEND is set and securelevel is greater than 0"
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 0 chflags ${n1} ${flag}
18	expect ${flag} stat ${n1} flags
19done
20expect 0 chflags ${n1} none
21expect 0 unlink ${n1}
22
23expect 0 mkdir ${n1} 0755
24expect 0 chown ${n1} 65534 65534
25for flag in SF_IMMUTABLE SF_APPEND; do
26	expect 0 chflags ${n1} ${flag}
27	expect ${flag} stat ${n1} flags
28done
29expect 0 chflags ${n1} none
30expect 0 rmdir ${n1}
31
32expect 0 mkfifo ${n1} 0644
33expect 0 chown ${n1} 65534 65534
34for flag in SF_IMMUTABLE SF_APPEND; do
35	expect 0 chflags ${n1} ${flag}
36	expect ${flag} stat ${n1} flags
37done
38expect 0 chflags ${n1} none
39expect 0 unlink ${n1}
40
41expect 0 symlink ${n2} ${n1}
42expect 0 lchown ${n1} 65534 65534
43for flag in SF_IMMUTABLE SF_APPEND; do
44	expect 0 lchflags ${n1} ${flag}
45	expect ${flag} lstat ${n1} flags
46done
47expect 0 lchflags ${n1} none
48expect 0 unlink ${n1}
49
50cd ${cdir}
51expect 0 rmdir ${n0}
52