I figured it out! I thought you might be interested --- the reason is the
mismatch between the default mount options stored in the superblock on
disk and the filesystem features compiled into the kernel.
Namely, dumpe2fs on the offending filesystems showed the following default
mount options:
user_xattr acl
but on good filesystems it showed "(none)". So, I used "tune2fs -o ^acl"
(and ^user_xattr) to clear these in the superblock and mounted the
filesystem --- and now mkdir system call works as expected, i.e.
honours the umask.
Maybe the ext3 filesystem should automatically detect this (the mismatch)
and printk a warning so the user is told that his filesystem is mounted in
extremely insecure way, i.e. making directories as root will result in
lots of 0777 places (e.g. try "make modules_install" --- this will create
lots of security holes in /lib/modules).
I cc'd linux-kernel as someone may wish to fix this. (see below for the
actual report).
Kind regards
Tigran
On Sun, 14 Jan 2007, Tigran Aivazian wrote:
I forgot to mention that on another machine running the same kernel version
with the same (as close as a UP machine can be to SMP) kernel configuration
the umask is honoured properly on ext3 filesystem.
On Sun, 14 Jan 2007, Tigran Aivazian wrote:
Hi Hugh,
I think I may have found a bug --- on one of my machines the umask value is
ignored by ext3 (but honoured on tmpfs) for mkdir system call:
$ cd /tmp
$ df -T .
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/hdf1 ext3 189238556 155721568 23749068 87% /
$ rmdir ok ; mkdir ok ; ls -ld ok
rmdir: ok: No such file or directory
drwxrwxrwx 2 tigran tigran 4096 Jan 14 20:36 ok/
$ umask
0022
$ cd /dev/shm
$ df -T .
Filesystem Type 1K-blocks Used Available Use% Mounted on
tmpfs tmpfs 517988 0 517988 0% /dev/shm
$ rmdir ok ; mkdir ok ; ls -ld ok
rmdir: ok: No such file or directory
drwxr-xr-x 2 tigran tigran 40 Jan 14 20:36 ok/
$ uname -a
Linux ws 2.6.19.1 #6 SMP Sun Jan 14 20:03:30 GMT 2007 i686 i686 i386
GNU/Linux
$ grep -i acl /usr/src/linux/.config
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFSD_V3_ACL is not set
As you see, ACL is not configured in, and neither are extended attributes:
$ grep -i xattr /usr/src/linux/.config
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT3_FS_XATTR is not set
So, this is something fs-specific. What do you think?
Kind regards
Tigran
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]