No FUSE, como obtenho as informações sobre o usuário e o processo que está tentando ler / gravar no sistema de arquivos virtual? [fechadas]

3

Digamos que eu criei um sistema de arquivos FUSE chamado foo e o montei em /mnt/foo .

Se eu tiver um usuário chamado myuser que está executando vi para abrir um arquivo em /mnt/foo , que métodos ou estrutura de dados do FUSE contêm as informações sobre o usuário e o processo? Eu quero o nome real do usuário / grupo e processo, ou o RUID e PID.

Eu tenho olhado para este mas não consigo encontrar as informações que menciono da documentação do doxygen.

    
por CuriousKimchi 23.11.2016 / 15:59

1 resposta

4

Durante a chamada para uma operação de fusível, você pode chamar fuse_get_context() para obter o ID do usuário da chamada atual, o ID do grupo, o id do processo e umask em um fuse_context Struct .

struct fuse_context {
        struct fuse *fuse;
        uid_t uid;
        gid_t gid;
        pid_t pid;
        void *private_data;
        mode_t umask;
};

Veja um documento e bsd mencionando esta função .

    
por 23.11.2016 / 16:43