Deleted Added
full compact
10.t (166065) 10.t (211180)
1#!/bin/sh
1#!/bin/sh
2# $FreeBSD: head/tools/regression/fstest/tests/chflags/10.t 166065 2007-01-17 01:42:12Z pjd $
2# $FreeBSD: head/tools/regression/fstest/tests/chflags/10.t 211180 2010-08-11 16:34:44Z pjd $
3
4desc="chflags returns EPERM if non-super-user tries to set one of SF_IMMUTABLE, SF_APPEND, or SF_NOUNLINK"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10
3
4desc="chflags returns EPERM if non-super-user tries to set one of SF_IMMUTABLE, SF_APPEND, or SF_NOUNLINK"
5
6dir=`dirname $0`
7. ${dir}/../misc.sh
8
9require chflags
10
11echo "1..62"
11echo "1..210"
12
13n0=`namegen`
14n1=`namegen`
15n2=`namegen`
16
17expect 0 mkdir ${n0} 0755
18cdir=`pwd`
19cd ${n0}
20
12
13n0=`namegen`
14n1=`namegen`
15n2=`namegen`
16
17expect 0 mkdir ${n0} 0755
18cdir=`pwd`
19cd ${n0}
20
21expect 0 create ${n1} 0644
22expect 0 chown ${n1} 65534 65534
23for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do
24 expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag}
25 expect none stat ${n1} flags
26 expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag}
27 expect none stat ${n1} flags
28done
29expect 0 unlink ${n1}
21for type in regular dir fifo block char socket symlink; do
22 if [ "${type}" != "symlink" ]; then
23 create_file ${type} ${n1} 0 0
24 expect 0 chown ${n1} 65534 65534
25 for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do
26 expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag}
27 expect none stat ${n1} flags
28 expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag}
29 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
30
37
31expect 0 mkdir ${n1} 0755
32expect 0 chown ${n1} 65534 65534
33for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do
34 expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag}
35 expect none stat ${n1} flags
36 expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag}
37 expect none stat ${n1} flags
38 create_file ${type} ${n1} 0 0
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
38done
51done
39expect 0 rmdir ${n1}
40
52
41expect 0 mkfifo ${n1} 0644
42expect 0 chown ${n1} 65534 65534
43for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do
44 expect EPERM -u 65533 -g 65533 chflags ${n1} ${flag}
45 expect none stat ${n1} flags
46 expect EPERM -u 65534 -g 65534 chflags ${n1} ${flag}
47 expect none stat ${n1} flags
48done
49expect 0 unlink ${n1}
50
51expect 0 symlink ${n2} ${n1}
52expect 0 lchown ${n1} 65534 65534
53for flag in SF_IMMUTABLE SF_APPEND SF_NOUNLINK; do
54 expect EPERM -u 65533 -g 65533 lchflags ${n1} ${flag}
55 expect none lstat ${n1} flags
56 expect EPERM -u 65534 -g 65534 lchflags ${n1} ${flag}
57 expect none lstat ${n1} flags
58done
59expect 0 unlink ${n1}
60
61cd ${cdir}
62expect 0 rmdir ${n0}
53cd ${cdir}
54expect 0 rmdir ${n0}