FreeBSD10ではext4fuseは非rootとして


1

私のコンピュータには2つのオペレーティングシステムがあり、100 GBのext4パーティションにはArch Linuxがあり、250 GBのパーティションにはFreeBSDがあり、2つの2TBのext4ディスクにすべてのデータがあります。

私は自分のFreeBSDを使ってこの2つのディスクからファイルにアクセスするつもりはありません。私はウェブ上で検索しましたが、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グループにファイルを読む許可を与えることができれば、私は私の通常のユーザーでそれを読むことができました。

/usr/home/*******/Arch Linux 私のデータがext4fuseを使ってマウントされた私の2TBパーティションです。

回答:


1

による そのgithubページ ext4fuseは 読み取り専用

これはFUSE用のext4の読み取り専用の実装です。

これはで実装されています fuse-main.c ファイルシステムを変更する可能性のある操作に関数を提供しないことによって(可能な操作の完全なリストは ここに ;

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を起動するときにはファイルにグループパーミッションを追加する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.