我正在与zfs-fuse作为在现有 CentOS 5 服务器上提供文件系统压缩的一种方式。我正在处理高度可压缩的数据集 (80%),因此 zfs-fuse 派上了用场。我遇到了存储池的文件权限问题。
看起来 zfs-fuse 忽略了或者仅部分识别非所有者的文件权限。
假设 zfs-fuse 文件系统安装在:/app/november
由权限为 666(-rw-rw-rw-)且所有者为“jack”的文件组成,我可以读文件和删除以用户“jill”的身份访问它们。但是,我无法写入或保存这些文件。基本上,如果我不是这些文件的所有者,那么所有内容都是只读的。
[jill@Vail /app/november]$ whoami
jill
[jill@Vail /app/november]$ ls -l testfile
-rw-rw-rw- 1 jack jack 27 Dec 18 12:12 testfile
[jill@Vail /app/november]$ touch testfile
touch: setting times of `testfile': Operation not permitted
[jill@Vail /app/november]$ rm testfile
[jill@Vail /app/november]$ touch testfile
[jill@Vail /app/november]$ ls -l
total 1
-rw-rw-rw- 1 jill jill 0 Dec 18 13:57 testfile
有什么想法吗?有办法解决这个问题吗?我认为这是一个 Fuse 问题,据我所知类似问题其他地方有这个和其他 Fuse 文件系统......
该zfs-fuse
软件包是从 EPEL 存储库下载的。...
rpm info
fuse
-2.7.4-8.el5
zfs-fuse-0.6.9_p1-6.20100709git.el5.1
编辑-挂载输出如下,显示 zpool 挂载和 Fuse 信息。
[root@Vail ~]# mount
/dev/cciss/c0d0p2 on / type ext3 (rw,noatime)
/dev/cciss/c0d0p9 on /app type xfs (rw,noatime,logbufs=8,logbsize=256k,nobarrier)
/dev/cciss/c0d0p8 on /tmp type ext3 (rw,noatime)
/dev/cciss/c0d0p7 on /var type ext3 (rw,noatime)
/dev/cciss/c0d0p3 on /usr type ext3 (rw,noatime)
/dev/cciss/c0d0p1 on /boot type ext3 (rw)
kstat on /zfs-kstat type fuse (rw,nosuid,nodev,allow_other)
vol1 on /vol1 type fuse (rw,allow_other,default_permissions)
vol1/november on /app/november type fuse (rw,allow_other,default_permissions)
vol1/december on /app/december type fuse (rw,allow_other,default_permissions)
答案1
请尝试升级到较新的 fuse 版本。Fuse 2.8 引入了一个新功能 (FUSE_VFS_HAS_DEFAULT_PERM),如果我没记错的话,它与组权限有关
目前还不清楚具体情况,但我认为在此之前,团体许可的实施速度太慢了。
答案2
我认为删除文件的权限是由目录的权限授予的(删除是对目录的操作),而不是文件...并且会做什么:
echo "1" > testfile
作为 jill,当 testfile 归 jack 所有时?