1166065Spjd#!/bin/sh 2166065Spjd# $FreeBSD: releng/10.2/tools/regression/pjdfstest/tests/chown/07.t 211410 2010-08-17 06:08:09Z pjd $ 3166065Spjd 4166065Spjddesc="chown returns EPERM if the operation would change the ownership, but the effective user ID is not the super-user and the process is not an owner of the file" 5166065Spjd 6166065Spjddir=`dirname $0` 7166065Spjd. ${dir}/../misc.sh 8166065Spjd 9211410Spjdecho "1..132" 10166065Spjd 11166065Spjdn0=`namegen` 12166065Spjdn1=`namegen` 13166065Spjdn2=`namegen` 14211410Spjdn3=`namegen` 15166065Spjd 16166065Spjdexpect 0 mkdir ${n0} 0755 17166065Spjdcdir=`pwd` 18166065Spjdcd ${n0} 19166065Spjdexpect 0 mkdir ${n1} 0755 20166065Spjdexpect 0 chown ${n1} 65534 65534 21211410Spjdfor type in regular dir fifo block char socket symlink; do 22211410Spjd if [ "${type}" != "symlink" ]; then 23211410Spjd create_file ${type} ${n1}/${n2} 65534 65534 24211410Spjd expect EPERM -u 65534 -g 65534 chown ${n1}/${n2} 65533 65533 25211410Spjd expect EPERM -u 65533 -g 65533 chown ${n1}/${n2} 65534 65534 26211410Spjd expect EPERM -u 65533 -g 65533 chown ${n1}/${n2} 65533 65533 27211410Spjd expect EPERM -u 65534 -g 65534 -- chown ${n1}/${n2} -1 65533 28211410Spjd expect 0 -u 65534 -g 65534 symlink ${n2} ${n1}/${n3} 29211410Spjd expect EPERM -u 65534 -g 65534 chown ${n1}/${n3} 65533 65533 30211410Spjd expect EPERM -u 65533 -g 65533 chown ${n1}/${n3} 65534 65534 31211410Spjd expect EPERM -u 65533 -g 65533 chown ${n1}/${n3} 65533 65533 32211410Spjd expect EPERM -u 65534 -g 65534 -- chown ${n1}/${n3} -1 65533 33211410Spjd expect 0 unlink ${n1}/${n3} 34211410Spjd if [ "${type}" = "dir" ]; then 35211410Spjd expect 0 rmdir ${n1}/${n2} 36211410Spjd else 37211410Spjd expect 0 unlink ${n1}/${n2} 38211410Spjd fi 39211410Spjd fi 40211410Spjd create_file ${type} ${n1}/${n2} 65534 65534 41211410Spjd expect EPERM -u 65534 -g 65534 lchown ${n1}/${n2} 65533 65533 42211410Spjd expect EPERM -u 65533 -g 65533 lchown ${n1}/${n2} 65534 65534 43211410Spjd expect EPERM -u 65533 -g 65533 lchown ${n1}/${n2} 65533 65533 44211410Spjd expect EPERM -u 65534 -g 65534 -- lchown ${n1}/${n2} -1 65533 45211410Spjd if [ "${type}" = "dir" ]; then 46211410Spjd expect 0 rmdir ${n1}/${n2} 47211410Spjd else 48211410Spjd expect 0 unlink ${n1}/${n2} 49211410Spjd fi 50211410Spjddone 51166065Spjdexpect 0 rmdir ${n1} 52166065Spjdcd ${cdir} 53166065Spjdexpect 0 rmdir ${n0} 54