FUSE에서 가상 파일 시스템에서 읽기/쓰기를 시도하는 사용자 및 프로세스에 대한 정보를 어떻게 얻을 수 있습니까? [폐쇄]

FUSE에서 가상 파일 시스템에서 읽기/쓰기를 시도하는 사용자 및 프로세스에 대한 정보를 어떻게 얻을 수 있습니까? [폐쇄]

FUSE라는 파일 시스템을 생성 foo하고 /mnt/foo.

파일을 열기 위해 myuserrunning 이라는 이름의 사용자가 있는 경우 사용자 및 프로세스에 대한 정보가 포함된 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

관련 정보