1271294Sngie#!/bin/sh 2271294Sngie# $FreeBSD: head/tools/regression/pjdfstest/tests/chown/00.t 228975 2011-12-30 00:04:11Z uqs $ 3271294Sngie 4271294Sngiedesc="chown changes ownership" 5271294Sngie 6271294Sngiedir=`dirname $0` 7271294Sngie. ${dir}/../misc.sh 8271294Sngie 9271294Sngieif supported lchmod; then 10271294Sngie echo "1..1349" 11271294Sngieelse 12271294Sngie echo "1..1323" 13271294Sngiefi 14271294Sngie 15271294Sngien0=`namegen` 16271294Sngien1=`namegen` 17271294Sngien2=`namegen` 18271294Sngie 19271294Sngieexpect 0 mkdir ${n2} 0755 20271294Sngiecdir=`pwd` 21271294Sngiecd ${n2} 22271294Sngie 23271294Sngie# super-user can always modify ownership 24271294Sngiefor type in regular dir fifo block char socket symlink; do 25271294Sngie if [ "${type}" != "symlink" ]; then 26271294Sngie create_file ${type} ${n0} 27271294Sngie 28271294Sngie expect 0 chown ${n0} 123 456 29271294Sngie expect 123,456 lstat ${n0} uid,gid 30271294Sngie expect 0 chown ${n0} 0 0 31271294Sngie expect 0,0 lstat ${n0} uid,gid 32271294Sngie 33271294Sngie expect 0 symlink ${n0} ${n1} 34271294Sngie uidgid=`${fstest} lstat ${n1} uid,gid` 35271294Sngie expect 0 chown ${n1} 123 456 36271294Sngie expect 123,456 stat ${n1} uid,gid 37271294Sngie expect 123,456 stat ${n0} uid,gid 38271294Sngie expect ${uidgid} lstat ${n1} uid,gid 39271294Sngie expect 0 unlink ${n1} 40271294Sngie 41271294Sngie if [ "${type}" = "dir" ]; then 42271294Sngie expect 0 rmdir ${n0} 43271294Sngie else 44271294Sngie expect 0 unlink ${n0} 45271294Sngie fi 46271294Sngie fi 47271294Sngie 48271294Sngie create_file ${type} ${n0} 49271294Sngie expect 0 lchown ${n0} 123 456 50271294Sngie expect 123,456 lstat ${n0} uid,gid 51271294Sngie if [ "${type}" = "dir" ]; then 52271294Sngie expect 0 rmdir ${n0} 53271294Sngie else 54271294Sngie expect 0 unlink ${n0} 55271294Sngie fi 56271294Sngiedone 57271294Sngie 58271294Sngie# non-super-user can modify file group if he is owner of a file and 59271294Sngie# gid he is setting is in his groups list. 60271294Sngiefor type in regular dir fifo block char socket symlink; do 61271294Sngie if [ "${type}" != "symlink" ]; then 62271294Sngie create_file ${type} ${n0} 63271294Sngie 64271294Sngie expect 0 chown ${n0} 65534 65533 65271294Sngie expect 65534,65533 lstat ${n0} uid,gid 66271294Sngie expect 0 -u 65534 -g 65532,65531 -- chown ${n0} -1 65532 67271294Sngie expect 65534,65532 lstat ${n0} uid,gid 68271294Sngie expect 0 -u 65534 -g 65532,65531 chown ${n0} 65534 65531 69271294Sngie expect 65534,65531 lstat ${n0} uid,gid 70271294Sngie 71271294Sngie expect 0 symlink ${n0} ${n1} 72271294Sngie uidgid=`${fstest} lstat ${n1} uid,gid` 73271294Sngie expect 0 chown ${n1} 65534 65533 74271294Sngie expect 65534,65533 stat ${n0} uid,gid 75271294Sngie expect 65534,65533 stat ${n1} uid,gid 76271294Sngie expect ${uidgid} lstat ${n1} uid,gid 77271294Sngie expect 0 -u 65534 -g 65532,65531 -- chown ${n1} -1 65532 78271294Sngie expect 65534,65532 stat ${n0} uid,gid 79271294Sngie expect 65534,65532 stat ${n1} uid,gid 80271294Sngie expect ${uidgid} lstat ${n1} uid,gid 81271294Sngie expect 0 -u 65534 -g 65532,65531 chown ${n1} 65534 65531 82271294Sngie expect 65534,65531 stat ${n0} uid,gid 83271294Sngie expect 65534,65531 stat ${n1} uid,gid 84271294Sngie expect ${uidgid} lstat ${n1} uid,gid 85271294Sngie expect 0 unlink ${n1} 86271294Sngie 87271294Sngie if [ "${type}" = "dir" ]; then 88271294Sngie expect 0 rmdir ${n0} 89271294Sngie else 90271294Sngie expect 0 unlink ${n0} 91271294Sngie fi 92271294Sngie fi 93271294Sngie 94271294Sngie create_file ${type} ${n0} 95271294Sngie expect 0 lchown ${n0} 65534 65533 96271294Sngie expect 65534,65533 lstat ${n0} uid,gid 97271294Sngie expect 0 -u 65534 -g 65532,65531 -- lchown ${n0} -1 65532 98271294Sngie expect 65534,65532 lstat ${n0} uid,gid 99271294Sngie expect 0 -u 65534 -g 65532,65531 lchown ${n0} 65534 65531 100271294Sngie expect 65534,65531 lstat ${n0} uid,gid 101271294Sngie if [ "${type}" = "dir" ]; then 102271294Sngie expect 0 rmdir ${n0} 103271294Sngie else 104271294Sngie expect 0 unlink ${n0} 105271294Sngie fi 106271294Sngiedone 107271294Sngie 108271294Sngie# chown(2) return 0 if user is not owner of a file, but chown(2) is called 109271294Sngie# with both uid and gid equal to -1. 110271294Sngiefor type in regular dir fifo block char socket symlink; do 111271294Sngie if [ "${type}" != "symlink" ]; then 112271294Sngie create_file ${type} ${n0} 113271294Sngie 114271294Sngie expect 0 chown ${n0} 65534 65533 115271294Sngie expect 0 -u 65532 -g 65531 -- chown ${n0} -1 -1 116271294Sngie expect 65534,65533 stat ${n0} uid,gid 117271294Sngie 118271294Sngie expect 0 symlink ${n0} ${n1} 119271294Sngie uidgid=`${fstest} lstat ${n1} uid,gid` 120271294Sngie expect 0 chown ${n1} 65534 65533 121271294Sngie expect 65534,65533 stat ${n0} uid,gid 122271294Sngie expect 65534,65533 stat ${n1} uid,gid 123271294Sngie expect ${uidgid} lstat ${n1} uid,gid 124271294Sngie expect 0 -u 65532 -g 65531 -- chown ${n0} -1 -1 125271294Sngie expect 65534,65533 stat ${n0} uid,gid 126271294Sngie expect 65534,65533 stat ${n1} uid,gid 127271294Sngie expect ${uidgid} lstat ${n1} uid,gid 128271294Sngie expect 0 unlink ${n1} 129271294Sngie 130271294Sngie if [ "${type}" = "dir" ]; then 131271294Sngie expect 0 rmdir ${n0} 132271294Sngie else 133271294Sngie expect 0 unlink ${n0} 134271294Sngie fi 135271294Sngie fi 136271294Sngie 137271294Sngie create_file ${type} ${n0} 138271294Sngie expect 0 lchown ${n0} 65534 65533 139271294Sngie expect 0 -u 65532 -g 65531 -- lchown ${n0} -1 -1 140271294Sngie expect 65534,65533 lstat ${n0} uid,gid 141271294Sngie if [ "${type}" = "dir" ]; then 142271294Sngie expect 0 rmdir ${n0} 143271294Sngie else 144271294Sngie expect 0 unlink ${n0} 145271294Sngie fi 146271294Sngiedone 147271294Sngie 148271294Sngie# when super-user calls chown(2), set-uid and set-gid bits may be removed. 149271294Sngiefor type in regular dir fifo block char socket symlink; do 150271294Sngie if [ "${type}" != "symlink" ]; then 151271294Sngie create_file ${type} ${n0} 152271294Sngie 153271294Sngie expect 0 chown ${n0} 65534 65533 154271294Sngie expect 0 chmod ${n0} 06555 155271294Sngie expect 06555,65534,65533 stat ${n0} mode,uid,gid 156271294Sngie expect 0 chown ${n0} 65532 65531 157271294Sngie expect "(06555|0555),65532,65531" stat ${n0} mode,uid,gid 158271294Sngie expect 0 chmod ${n0} 06555 159271294Sngie expect 06555,65532,65531 stat ${n0} mode,uid,gid 160271294Sngie expect 0 chown ${n0} 0 0 161271294Sngie expect "(06555|0555),0,0" stat ${n0} mode,uid,gid 162271294Sngie 163271294Sngie expect 0 symlink ${n0} ${n1} 164271294Sngie expect 0 chown ${n1} 65534 65533 165271294Sngie expect 0 chmod ${n1} 06555 166271294Sngie expect 06555,65534,65533 stat ${n0} mode,uid,gid 167271294Sngie expect 06555,65534,65533 stat ${n1} mode,uid,gid 168271294Sngie expect 0 chown ${n1} 65532 65531 169271294Sngie expect "(06555|0555),65532,65531" stat ${n0} mode,uid,gid 170271294Sngie expect "(06555|0555),65532,65531" stat ${n1} mode,uid,gid 171271294Sngie expect 0 chmod ${n1} 06555 172271294Sngie expect 06555,65532,65531 stat ${n0} mode,uid,gid 173271294Sngie expect 06555,65532,65531 stat ${n1} mode,uid,gid 174271294Sngie expect 0 chown ${n1} 0 0 175271294Sngie expect "(06555|0555),0,0" stat ${n0} mode,uid,gid 176271294Sngie expect "(06555|0555),0,0" stat ${n1} mode,uid,gid 177271294Sngie expect 0 unlink ${n1} 178271294Sngie 179271294Sngie if [ "${type}" = "dir" ]; then 180271294Sngie expect 0 rmdir ${n0} 181271294Sngie else 182271294Sngie expect 0 unlink ${n0} 183271294Sngie fi 184271294Sngie fi 185271294Sngie 186271294Sngie if [ "${type}" != "symlink" ] || supported lchmod; then 187271294Sngie create_file ${type} ${n0} 188271294Sngie expect 0 lchown ${n0} 65534 65533 189271294Sngie if supported lchmod; then 190271294Sngie expect 0 lchmod ${n0} 06555 191271294Sngie else 192271294Sngie expect 0 chmod ${n0} 06555 193271294Sngie fi 194271294Sngie expect 06555,65534,65533 lstat ${n0} mode,uid,gid 195271294Sngie expect 0 lchown ${n0} 65532 65531 196271294Sngie expect "(06555|0555),65532,65531" lstat ${n0} mode,uid,gid 197271294Sngie if supported lchmod; then 198271294Sngie expect 0 lchmod ${n0} 06555 199271294Sngie else 200271294Sngie expect 0 chmod ${n0} 06555 201271294Sngie fi 202271294Sngie expect 06555,65532,65531 lstat ${n0} mode,uid,gid 203271294Sngie expect 0 lchown ${n0} 0 0 204271294Sngie expect "(06555|0555),0,0" lstat ${n0} mode,uid,gid 205271294Sngie if [ "${type}" = "dir" ]; then 206271294Sngie expect 0 rmdir ${n0} 207271294Sngie else 208271294Sngie expect 0 unlink ${n0} 209271294Sngie fi 210271294Sngie fi 211271294Sngiedone 212271294Sngie 213271294Sngie# when non-super-user calls chown(2) successfully, set-uid and set-gid bits may 214271294Sngie# be removed, except when both uid and gid are equal to -1. 215271294Sngiefor type in regular dir fifo block char socket symlink; do 216271294Sngie if [ "${type}" != "symlink" ]; then 217271294Sngie create_file ${type} ${n0} 218271294Sngie 219271294Sngie expect 0 chown ${n0} 65534 65533 220271294Sngie expect 0 chmod ${n0} 06555 221271294Sngie expect 06555,65534,65533 stat ${n0} mode,uid,gid 222271294Sngie expect 0 -u 65534 -g 65533,65532 chown ${n0} 65534 65532 223271294Sngie expect 0555,65534,65532 stat ${n0} mode,uid,gid 224271294Sngie expect 0 chmod ${n0} 06555 225271294Sngie expect 06555,65534,65532 stat ${n0} mode,uid,gid 226271294Sngie expect 0 -u 65534 -g 65533,65532 -- chown ${n0} -1 65533 227271294Sngie expect 0555,65534,65533 stat ${n0} mode,uid,gid 228271294Sngie expect 0 chmod ${n0} 06555 229271294Sngie expect 06555,65534,65533 stat ${n0} mode,uid,gid 230271294Sngie expect 0 -u 65534 -g 65533,65532 -- chown ${n0} -1 -1 231271294Sngie expect "(06555|0555),65534,65533" stat ${n0} mode,uid,gid 232271294Sngie 233271294Sngie expect 0 symlink ${n0} ${n1} 234271294Sngie expect 0 chown ${n1} 65534 65533 235271294Sngie expect 0 chmod ${n1} 06555 236271294Sngie expect 06555,65534,65533 stat ${n0} mode,uid,gid 237271294Sngie expect 06555,65534,65533 stat ${n1} mode,uid,gid 238271294Sngie expect 0 -u 65534 -g 65533,65532 chown ${n1} 65534 65532 239271294Sngie expect 0555,65534,65532 stat ${n0} mode,uid,gid 240271294Sngie expect 0555,65534,65532 stat ${n1} mode,uid,gid 241271294Sngie expect 0 chmod ${n1} 06555 242271294Sngie expect 06555,65534,65532 stat ${n0} mode,uid,gid 243271294Sngie expect 06555,65534,65532 stat ${n1} mode,uid,gid 244271294Sngie expect 0 -u 65534 -g 65533,65532 -- chown ${n1} -1 65533 245271294Sngie expect 0555,65534,65533 stat ${n0} mode,uid,gid 246271294Sngie expect 0555,65534,65533 stat ${n1} mode,uid,gid 247271294Sngie expect 0 chmod ${n1} 06555 248271294Sngie expect 06555,65534,65533 stat ${n0} mode,uid,gid 249271294Sngie expect 06555,65534,65533 stat ${n1} mode,uid,gid 250271294Sngie expect 0 -u 65534 -g 65533,65532 -- chown ${n1} -1 -1 251271294Sngie expect "(06555|0555),65534,65533" stat ${n0} mode,uid,gid 252271294Sngie expect "(06555|0555),65534,65533" stat ${n1} mode,uid,gid 253271294Sngie expect 0 unlink ${n1} 254271294Sngie 255271294Sngie if [ "${type}" = "dir" ]; then 256271294Sngie expect 0 rmdir ${n0} 257271294Sngie else 258271294Sngie expect 0 unlink ${n0} 259271294Sngie fi 260271294Sngie fi 261271294Sngie 262271294Sngie if [ "${type}" != "symlink" ] || supported lchmod; then 263271294Sngie create_file ${type} ${n0} 264271294Sngie 265271294Sngie expect 0 lchown ${n0} 65534 65533 266271294Sngie if supported lchmod; then 267271294Sngie expect 0 lchmod ${n0} 06555 268271294Sngie else 269271294Sngie expect 0 chmod ${n0} 06555 270271294Sngie fi 271271294Sngie expect 06555,65534,65533 lstat ${n0} mode,uid,gid 272271294Sngie expect 0 -u 65534 -g 65533,65532 lchown ${n0} 65534 65532 273271294Sngie expect 0555,65534,65532 lstat ${n0} mode,uid,gid 274271294Sngie if supported lchmod; then 275271294Sngie expect 0 lchmod ${n0} 06555 276271294Sngie else 277271294Sngie expect 0 chmod ${n0} 06555 278271294Sngie fi 279271294Sngie expect 06555,65534,65532 lstat ${n0} mode,uid,gid 280271294Sngie expect 0 -u 65534 -g 65533,65532 -- lchown ${n0} -1 65533 281271294Sngie expect 0555,65534,65533 lstat ${n0} mode,uid,gid 282271294Sngie if supported lchmod; then 283271294Sngie expect 0 lchmod ${n0} 06555 284271294Sngie else 285271294Sngie expect 0 chmod ${n0} 06555 286271294Sngie fi 287271294Sngie expect 06555,65534,65533 lstat ${n0} mode,uid,gid 288271294Sngie expect 0 -u 65534 -g 65533,65532 -- lchown ${n0} -1 -1 289271294Sngie expect "(06555|0555),65534,65533" lstat ${n0} mode,uid,gid 290271294Sngie 291271294Sngie if [ "${type}" = "dir" ]; then 292271294Sngie expect 0 rmdir ${n0} 293271294Sngie else 294271294Sngie expect 0 unlink ${n0} 295271294Sngie fi 296271294Sngie fi 297271294Sngiedone 298271294Sngie 299271294Sngie# successful chown(2) call (except uid and gid equal to -1) updates ctime. 300271294Sngiefor type in regular dir fifo block char socket symlink; do 301271294Sngie if [ "${type}" != "symlink" ]; then 302271294Sngie create_file ${type} ${n0} 303271294Sngie 304271294Sngie ctime1=`${fstest} stat ${n0} ctime` 305271294Sngie sleep 1 306271294Sngie expect 0 chown ${n0} 65534 65533 307271294Sngie expect 65534,65533 stat ${n0} uid,gid 308271294Sngie ctime2=`${fstest} stat ${n0} ctime` 309271294Sngie test_check $ctime1 -lt $ctime2 310271294Sngie ctime1=`${fstest} stat ${n0} ctime` 311271294Sngie sleep 1 312271294Sngie expect 0 -u 65534 -g 65532 chown ${n0} 65534 65532 313271294Sngie expect 65534,65532 stat ${n0} uid,gid 314271294Sngie ctime2=`${fstest} stat ${n0} ctime` 315271294Sngie test_check $ctime1 -lt $ctime2 316271294Sngie 317271294Sngie expect 0 symlink ${n0} ${n1} 318271294Sngie ctime1=`${fstest} stat ${n1} ctime` 319271294Sngie sleep 1 320271294Sngie expect 0 chown ${n1} 65533 65532 321271294Sngie expect 65533,65532 stat ${n1} uid,gid 322271294Sngie ctime2=`${fstest} stat ${n1} ctime` 323271294Sngie test_check $ctime1 -lt $ctime2 324271294Sngie ctime1=`${fstest} stat ${n1} ctime` 325271294Sngie sleep 1 326271294Sngie expect 0 -u 65533 -g 65531 chown ${n1} 65533 65531 327271294Sngie expect 65533,65531 stat ${n1} uid,gid 328271294Sngie ctime2=`${fstest} stat ${n1} ctime` 329271294Sngie test_check $ctime1 -lt $ctime2 330271294Sngie expect 0 unlink ${n1} 331271294Sngie 332271294Sngie if [ "${type}" = "dir" ]; then 333271294Sngie expect 0 rmdir ${n0} 334271294Sngie else 335271294Sngie expect 0 unlink ${n0} 336271294Sngie fi 337271294Sngie fi 338271294Sngie 339271294Sngie create_file ${type} ${n0} 340271294Sngie 341271294Sngie ctime1=`${fstest} lstat ${n0} ctime` 342271294Sngie sleep 1 343271294Sngie expect 0 lchown ${n0} 65534 65533 344271294Sngie expect 65534,65533 lstat ${n0} uid,gid 345271294Sngie ctime2=`${fstest} lstat ${n0} ctime` 346271294Sngie test_check $ctime1 -lt $ctime2 347271294Sngie ctime1=`${fstest} lstat ${n0} ctime` 348271294Sngie sleep 1 349271294Sngie expect 0 -u 65534 -g 65532 lchown ${n0} 65534 65532 350271294Sngie expect 65534,65532 lstat ${n0} uid,gid 351271294Sngie ctime2=`${fstest} lstat ${n0} ctime` 352271294Sngie test_check $ctime1 -lt $ctime2 353271294Sngie 354271294Sngie if [ "${type}" = "dir" ]; then 355271294Sngie expect 0 rmdir ${n0} 356271294Sngie else 357271294Sngie expect 0 unlink ${n0} 358271294Sngie fi 359271294Sngiedone 360271294Sngie 361271294Sngiefor type in regular dir fifo block char socket symlink; do 362271294Sngie if [ "${type}" != "symlink" ]; then 363271294Sngie create_file ${type} ${n0} 364271294Sngie 365271294Sngie ctime1=`${fstest} stat ${n0} ctime` 366271294Sngie sleep 1 367271294Sngie expect 0 -- chown ${n0} -1 -1 368271294Sngie ctime2=`${fstest} stat ${n0} ctime` 369271294Sngie todo Linux "According to POSIX: If both owner and group are -1, the times need not be updated." 370271294Sngie test_check $ctime1 -eq $ctime2 371271294Sngie expect 0,0 stat ${n0} uid,gid 372271294Sngie 373271294Sngie expect 0 symlink ${n0} ${n1} 374271294Sngie ctime1=`${fstest} stat ${n1} ctime` 375271294Sngie sleep 1 376271294Sngie expect 0 -- chown ${n1} -1 -1 377271294Sngie ctime2=`${fstest} stat ${n1} ctime` 378271294Sngie todo Linux "According to POSIX: If both owner and group are -1, the times need not be updated." 379271294Sngie test_check $ctime1 -eq $ctime2 380271294Sngie expect 0,0 stat ${n1} uid,gid 381271294Sngie expect 0 unlink ${n1} 382271294Sngie 383271294Sngie if [ "${type}" = "dir" ]; then 384271294Sngie expect 0 rmdir ${n0} 385271294Sngie else 386271294Sngie expect 0 unlink ${n0} 387271294Sngie fi 388271294Sngie fi 389271294Sngie 390271294Sngie create_file ${type} ${n0} 391271294Sngie 392271294Sngie ctime1=`${fstest} lstat ${n0} ctime` 393271294Sngie sleep 1 394271294Sngie expect 0 -- lchown ${n0} -1 -1 395271294Sngie ctime2=`${fstest} lstat ${n0} ctime` 396271294Sngie todo Linux "According to POSIX: If both owner and group are -1, the times need not be updated." 397271294Sngie test_check $ctime1 -eq $ctime2 398271294Sngie expect 0,0 lstat ${n0} uid,gid 399271294Sngie 400271294Sngie if [ "${type}" = "dir" ]; then 401271294Sngie expect 0 rmdir ${n0} 402271294Sngie else 403271294Sngie expect 0 unlink ${n0} 404271294Sngie fi 405271294Sngiedone 406271294Sngie 407271294Sngie# unsuccessful chown(2) does not update ctime. 408271294Sngiefor type in regular dir fifo block char socket symlink; do 409271294Sngie if [ "${type}" != "symlink" ]; then 410271294Sngie create_file ${type} ${n0} 411271294Sngie 412271294Sngie ctime1=`${fstest} stat ${n0} ctime` 413271294Sngie sleep 1 414271294Sngie expect EPERM -u 65534 -- chown ${n0} 65534 -1 415271294Sngie expect EPERM -u 65534 -g 65534 -- chown ${n0} -1 65534 416271294Sngie expect EPERM -u 65534 -g 65534 chown ${n0} 65534 65534 417271294Sngie ctime2=`${fstest} stat ${n0} ctime` 418271294Sngie test_check $ctime1 -eq $ctime2 419271294Sngie expect 0,0 stat ${n0} uid,gid 420271294Sngie 421271294Sngie expect 0 symlink ${n0} ${n1} 422271294Sngie ctime1=`${fstest} stat ${n1} ctime` 423271294Sngie sleep 1 424271294Sngie expect EPERM -u 65534 -- chown ${n1} 65534 -1 425271294Sngie expect EPERM -u 65534 -g 65534 -- chown ${n1} -1 65534 426271294Sngie expect EPERM -u 65534 -g 65534 chown ${n1} 65534 65534 427271294Sngie ctime2=`${fstest} stat ${n1} ctime` 428271294Sngie test_check $ctime1 -eq $ctime2 429271294Sngie expect 0,0 stat ${n1} uid,gid 430271294Sngie expect 0 unlink ${n1} 431271294Sngie 432271294Sngie if [ "${type}" = "dir" ]; then 433271294Sngie expect 0 rmdir ${n0} 434271294Sngie else 435271294Sngie expect 0 unlink ${n0} 436271294Sngie fi 437271294Sngie fi 438271294Sngie 439271294Sngie create_file ${type} ${n0} 440271294Sngie 441271294Sngie ctime1=`${fstest} lstat ${n0} ctime` 442271294Sngie sleep 1 443271294Sngie expect EPERM -u 65534 -- lchown ${n0} 65534 -1 444271294Sngie expect EPERM -u 65534 -g 65534 -- lchown ${n0} -1 65534 445271294Sngie expect EPERM -u 65534 -g 65534 lchown ${n0} 65534 65534 446271294Sngie ctime2=`${fstest} lstat ${n0} ctime` 447271294Sngie test_check $ctime1 -eq $ctime2 448271294Sngie expect 0,0 lstat ${n0} uid,gid 449271294Sngie 450271294Sngie if [ "${type}" = "dir" ]; then 451271294Sngie expect 0 rmdir ${n0} 452271294Sngie else 453271294Sngie expect 0 unlink ${n0} 454271294Sngie fi 455271294Sngiedone 456271294Sngie 457271294Sngiecd ${cdir} 458271294Sngieexpect 0 rmdir ${n2} 459