我的计算机上有 2 个操作系统,一个 Arch Linux 位于 100GB ext4 分区上,一个 FreeBSD 位于 250GB 分区上,所有数据位于 2 个 2TB 分隔的 ext4 磁盘上。
我想要使用我的 FreeBSD 访问这两个磁盘上的文件,我在网上搜索并且我发现的最好的结果是使用 ext4fuse,我尝试使用来挂载我的磁盘ext4fuse /device /folder
,它可以工作但我无法用我的普通用户读取内容,只有 root 用户才有读取的权限:
[root@******* /usr/home/********/Arch Linux]# ls -lha
total 72
dr-xr-xr-x 4 root wheel 4.0K Aug 28 19:37 .
drwxr-xr-x 29 ***** ***** 1.0K Feb 20 15:43 ..
dr-x------ 108 1000 100 12K Feb 20 06:24 *********
dr-x------ 2 root wheel 16K Aug 28 16:18 lost+found
由于我找不到有关 ext4fuse 的任何文档并且它仅以只读方式安装,所以我无法做任何其他事情。
如果至少我可以授予 wheel 组读取该文件的权限,我就可以用我的普通用户身份读取它,因为只有 root 才有权访问此设备,我甚至无法用我的普通用户身份 cd 到该文件夹。
/usr/home/*******/Arch Linux
这是我的 2TB 分区,其中的数据使用 ext4fuse 安装。
答案1
根据它的 github 页面,ext4fuse 是只读:
这是 FUSE 的 ext4 的只读实现。
这是在保险丝主程序,不提供任何可以改变文件系统的操作函数(可能的操作的完整列表是这里(英文):
static struct fuse_operations e4f_ops = {
.getattr = op_getattr,
.readdir = op_readdir,
.open = op_open,
.read = op_read,
.readlink = op_readlink,
.init = op_init,
};
并且在op_getattr.c,通过从权限中删除所有写入位;
stbuf->st_mode = inode.i_mode & ~0222;
但它不会删除所有组位。
这意味着你不能改变任何事物在ext4
FreeBSD 的文件系统上。而缺少组权限则来自ext4
文件系统本身。因此,当您启动 Arch Linux 时,您必须为文件添加组权限。