1271294Sngie#!/bin/sh
2271294Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/chmod/12.t 219463 2011-03-10 20:59:02Z pjd $
3271294Sngie
4271294Sngiedesc="verify SUID/SGID bit behaviour"
5271294Sngie
6271294Sngiedir=`dirname $0`
7271294Sngie. ${dir}/../misc.sh
8271294Sngie
9271294Sngieecho "1..14"
10271294Sngie
11271294Sngien0=`namegen`
12271294Sngien1=`namegen`
13271294Sngien2=`namegen`
14271294Sngie
15271294Sngieexpect 0 mkdir ${n2} 0755
16271294Sngiecdir=`pwd`
17271294Sngiecd ${n2}
18271294Sngie
19271294Sngie# Check whether writing to the file by non-owner clears the SUID.
20271294Sngieexpect 0 create ${n0} 04777
21271294Sngieexpect 0777 -u 65534 -g 65534 open ${n0} O_WRONLY : write 0 x : fstat 0 mode
22271294Sngieexpect 0777 stat ${n0} mode
23271294Sngieexpect 0 unlink ${n0}
24271294Sngie
25271294Sngie# Check whether writing to the file by non-owner clears the SGID.
26271294Sngieexpect 0 create ${n0} 02777
27271294Sngieexpect 0777 -u 65534 -g 65534 open ${n0} O_RDWR : write 0 x : fstat 0 mode
28271294Sngieexpect 0777 stat ${n0} mode
29271294Sngieexpect 0 unlink ${n0}
30271294Sngie
31271294Sngie# Check whether writing to the file by non-owner clears the SUID+SGID.
32271294Sngieexpect 0 create ${n0} 06777
33271294Sngieexpect 0777 -u 65534 -g 65534 open ${n0} O_RDWR : write 0 x : fstat 0 mode
34271294Sngieexpect 0777 stat ${n0} mode
35271294Sngieexpect 0 unlink ${n0}
36271294Sngie
37271294Sngiecd ${cdir}
38271294Sngieexpect 0 rmdir ${n2}
39