web-dev-qa-db-ja.com

Fuseで、仮想ファイルシステムで読み取り/書き込みを試みているユーザーとプロセスに関する情報を取得するにはどうすればよいですか?

fooという名前のFuseファイルシステムを作成し、それを/mnt/fooにマウントしたとします。

myuserを実行して/mnt/fooでファイルを開くviというユーザーがいる場合、どのFuseメソッドまたはデータ構造にユーザーとプロセスに関する情報が含まれていますか?ユーザー/グループとプロセスの実際の名前、またはRUIDとPIDが必要です。

私は this を見つめてきましたが、doxygenのドキュメントから私が言及した情報を見つけることができません。

3
CuriousKimchi

Fuse操作の呼び出し中に、Fuse_get_context()を呼び出して、現在呼び出しているユーザーID、グループID、プロセスID、およびumaskを Fuse_context Struct で取得できます。

struct Fuse_context {
        struct Fuse *Fuse;
        uid_t uid;
        gid_t gid;
        pid_t pid;
        void *private_data;
        mode_t umask;
};

これが docbsd のmanページでこの関数について言及しています。

5
meuh