I'm experiencing problems with the file permissions checking in
the new NFS client code of the 2.1 kernel. When a set-uid process
inherits an open file descriptor, and tries to write to the file,
it fails. One situation where this occurs is when you start X
with something like "xinit > log 2>&1", and the output file is
located on NFS. The resulting output file will be corrupted.
The following script demonstrates the problem:
================================================================
#!/bin/sh
nfsfile=/mnt/temp # some temp file on NFS mounted partition
# uncomment one of the two lines:
su foo -c /bin/date > $nfsfile
#mount > $nfsfile # assuming 'mount' is installed suid-root
ls -l $nfsfile
cat $nfsfile
sleep 4
ls -l $nfsfile
rm $nfsfile
================================================================
The output of the script is:
================================================================
-rw-r--r-- 1 dick system 30 May 21 15:44 /mnt/temp
cat: /mnt/temp: Bad address
-rw-r--r-- 1 dick system 0 May 21 15:44 /mnt/temp
================================================================
The following message shows up in /var/log/messages:
================================================================
May 21 15:44:58 dx kernel: NFS: inode 153096745 had 1 failed requests
================================================================
I looked in fs/nfs/ and net/sunrpc/, but I'm not sure where this
should be fixed. Any ideas?
-- Dick Streefland //// Tasking Software BV dick_streefland@tasking.com (@ @) http://www.tasking.com --------------------------------oOO--(_)--OOo---------------------------- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu