![FUSE에서 가상 파일 시스템에서 읽기/쓰기를 시도하는 사용자 및 프로세스에 대한 정보를 어떻게 얻을 수 있습니까? [폐쇄]](https://linux55.com/image/99356/FUSE%EC%97%90%EC%84%9C%20%EA%B0%80%EC%83%81%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%97%90%EC%84%9C%20%EC%9D%BD%EA%B8%B0%2F%EC%93%B0%EA%B8%B0%EB%A5%BC%20%EC%8B%9C%EB%8F%84%ED%95%98%EB%8A%94%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EB%B0%8F%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%A0%95%EB%B3%B4%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%96%BB%EC%9D%84%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%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