![FUSEで仮想ファイルシステムで読み取り/書き込みを試みるユーザーとプロセスに関する情報をどのように取得できますか? [閉鎖]](https://linux33.com/image/99356/FUSE%E3%81%A7%E4%BB%AE%E6%83%B3%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%A7%E8%AA%AD%E3%81%BF%E5%8F%96%E3%82%8A%2F%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%81%BF%E3%82%92%E8%A9%A6%E3%81%BF%E3%82%8B%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%A8%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E6%83%85%E5%A0%B1%E3%82%92%E3%81%A9%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E5%8F%96%E5%BE%97%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
FUSEというファイルシステムを作成しfoo
ます/mnt/foo
。
ファイルを開くためにmyuser
runningという名前のユーザーがいる場合、ユーザーとプロセスに関する情報を含むFUSEメソッドまたはデータ構造は何ですか?ユーザー/グループとプロセスの実際の名前、またはRUIDとPIDが必要です。vi
/mnt/foo
見続けるこれ ただし、doxygenの記事に記載されている情報が見つかりません。
答え1
サーキットブレーカの動作中に呼び出すと、fuse_get_context()
現在呼び出されているユーザーID、グループID、プロセスID、およびumaskを取得できます。fusion_context構造。
struct fuse_context {
struct fuse *fuse;
uid_t uid;
gid_t gid;
pid_t pid;
void *private_data;
mode_t umask;
};
これは文書そしてBSDマニュアルページにこの機能が記載されています。
低レベルAPIを使用している場合は、現在の関数を使用して渡すfuse_req_ctx
必要があります。fuse_req_t
このスレッド。 fuse_req_ctx
返品aへのポインタfusion_ctx構造uid
その中には、、、gid
および呼び出し手続き用がありますpid
。umask