FUSE e seus direitos de acesso
lsofpor padrão, verifica todos os sistemas de arquivos montados, incluindo sistemas de arquivos FUSE implementados no espaço do usuário que possuem direitos de acesso especiais no Linux.
Como você pode ver nesta resposta em Pergunte ao Ubuntu, um sistema de arquivos GVFS montado (caso especial do FUSE) normalmente é acessível apenas ao usuário que o montou (o proprietário gvfsd-fuse). Mesmo rootnão pode acessá-lo. Para substituir essa restrição, é possível usar as opções de montagem allow_roote allow_other. A opção também deve ser ativada no daemon do FUSE, descrito por exemplo nesta resposta ... mas no seu caso, você não precisa (e não deve) alterar os direitos de acesso.
Excluindo sistemas de arquivos de lsof
No seu caso, lsofnão é necessário verificar os sistemas de arquivos GVFS para que você possa excluir as stat()chamadas usando a -eopção (ou simplesmente ignorar o aviso):
lsof -e /run/user/1000/gvfs
Verificando certos arquivos por lsof
Você está usando lsofpara obter informações sobre todos os processos em execução no sistema e só então filtrar a saída completa usando grep. Se você deseja verificar apenas certos arquivos e os processos relacionados, use a -fopção sem um valor diretamente a seguir, especifique uma lista de arquivos após o separador "fim das opções" --. Isso será consideravelmente mais rápido.
lsof -e /run/user/1000/gvfs -f -- /tmp/report.csv
Solução geral
Para excluir todos os sistemas de arquivos montados nos quais stat()falha, você pode executar algo como isto (em bash):
x=(); for a in $(mount | cut -d' ' -f3); do test -e "$a" || x+=("-e$a"); done
lsof "${x[@]}" -f -- /tmp/report.csv
Ou, certifique-se de usar stat()( test -epode ser implementado de uma maneira diferente):
x=(); for a in $(mount | cut -d' ' -f3); do stat --printf= "$a" 2>/dev/null || x+=("-e$a"); done
lsof(sem o|e grep)?