140a8ac8fSEnji Cooper#!/bin/sh 2*3416500aSEnji Cooper# vim: filetype=sh noexpandtab ts=8 sw=8 340a8ac8fSEnji Cooper# $FreeBSD: head/tools/regression/pjdfstest/tests/chmod/12.t 219463 2011-03-10 20:59:02Z pjd $ 440a8ac8fSEnji Cooper 540a8ac8fSEnji Cooperdesc="verify SUID/SGID bit behaviour" 640a8ac8fSEnji Cooper 740a8ac8fSEnji Cooperdir=`dirname $0` 840a8ac8fSEnji Cooper. ${dir}/../misc.sh 940a8ac8fSEnji Cooper 1040a8ac8fSEnji Cooperecho "1..14" 1140a8ac8fSEnji Cooper 1240a8ac8fSEnji Coopern0=`namegen` 1340a8ac8fSEnji Coopern1=`namegen` 1440a8ac8fSEnji Coopern2=`namegen` 1540a8ac8fSEnji Cooper 1640a8ac8fSEnji Cooperexpect 0 mkdir ${n2} 0755 1740a8ac8fSEnji Coopercdir=`pwd` 1840a8ac8fSEnji Coopercd ${n2} 1940a8ac8fSEnji Cooper 2040a8ac8fSEnji Cooper# Check whether writing to the file by non-owner clears the SUID. 2140a8ac8fSEnji Cooperexpect 0 create ${n0} 04777 2240a8ac8fSEnji Cooperexpect 0777 -u 65534 -g 65534 open ${n0} O_WRONLY : write 0 x : fstat 0 mode 2340a8ac8fSEnji Cooperexpect 0777 stat ${n0} mode 2440a8ac8fSEnji Cooperexpect 0 unlink ${n0} 2540a8ac8fSEnji Cooper 2640a8ac8fSEnji Cooper# Check whether writing to the file by non-owner clears the SGID. 2740a8ac8fSEnji Cooperexpect 0 create ${n0} 02777 2840a8ac8fSEnji Cooperexpect 0777 -u 65534 -g 65534 open ${n0} O_RDWR : write 0 x : fstat 0 mode 2940a8ac8fSEnji Cooperexpect 0777 stat ${n0} mode 3040a8ac8fSEnji Cooperexpect 0 unlink ${n0} 3140a8ac8fSEnji Cooper 3240a8ac8fSEnji Cooper# Check whether writing to the file by non-owner clears the SUID+SGID. 3340a8ac8fSEnji Cooperexpect 0 create ${n0} 06777 3440a8ac8fSEnji Cooperexpect 0777 -u 65534 -g 65534 open ${n0} O_RDWR : write 0 x : fstat 0 mode 3540a8ac8fSEnji Cooperexpect 0777 stat ${n0} mode 3640a8ac8fSEnji Cooperexpect 0 unlink ${n0} 3740a8ac8fSEnji Cooper 3840a8ac8fSEnji Coopercd ${cdir} 3940a8ac8fSEnji Cooperexpect 0 rmdir ${n2} 40