lsof : 경고 : stat () 퓨즈를 사용할 수 없습니다. gvfsd-fuse 파일 시스템


25

여기서 정확히 무슨 일이 일어나고 있습니까?

root@bob-p7-1298c:/# ls -l /tmp/report.csv && lsof | grep "report.csv"
-rw-r--r-- 1 mysql mysql 1430 Dec  4 12:34 /tmp/report.csv
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.

발행 할 때 lsof( |및 grep 없이) 이 경고가 표시 됩니까?
Sree

동일한 경고가 발생하지만 lsof열린 파일의 큰 목록 만 출력합니다. 나는 그것이 부수적 인 문제라고 생각합니다. 프로세스에 의해 파일이 열린 상태 일 수 있으며 루트가 파일을 이동할 수없는 이유 일 수 있지만 그럴 수는 없습니다. 따라서 혼란.
jmunsch 2014

1
네, can't stat...또 다른 문제인 것 같습니다 . 나는 실제 문제가 No such file or directory당신이 얻는 오류 라고 가정합니다 . 바보처럼 들릴 수 있지만 / home / bob / Desktop 위치가 있습니까?
Sree

답변:


30

퓨즈 및 액세스 권한

lsof기본적 으로 Linux에서 특별한 액세스 권한이있는 사용자 공간에 구현 된 FUSE 파일 시스템을 포함하여 모든 마운트 된 파일 시스템을 검사합니다 .

Ask Ubuntu 의이 답변에서 볼 수 있듯이 마운트 된 GVFS 파일 시스템 (특별한 FUSE)은 마운트 한 사용자 (의 소유자 gvfsd-fuse) 만 액세스 할 수 있습니다 . 심지어 root액세스 할 수 없습니다. 이 제한을 무시하려면 마운트 옵션 allow_root및 을 사용할 수 있습니다 allow_other. 이 답변 에 설명 된 FUSE 데몬에서도이 옵션을 활성화해야합니다 .하지만 액세스 권한을 변경할 필요는 없습니다.

lsof에서 파일 시스템 제외

귀하의 경우 lsofGVFS 파일 시스템을 확인할 필요가 없으므로 옵션을 stat()사용하여 해당 호출을 제외 -e하거나 경고를 무시할 수 있습니다.

lsof -e /run/user/1000/gvfs

lsof로 특정 파일 확인

lsof시스템에서 실행중인 모든 프로세스에 대한 정보를 얻는 데 사용 하고을 사용하여 전체 출력을 필터링합니다 grep. 특정 파일 만 검사하고 관련 프로세스 -f가 값 바로 뒤에 오는 옵션없이 옵션을 사용 하려면 "옵션 끝"구분 기호 뒤에 파일 목록을 지정하십시오 --. 이것은 훨씬 빠릅니다.

lsof -e /run/user/1000/gvfs -f -- /tmp/report.csv

일반적인 해결책

stat()실패한 마운트 된 파일 시스템을 모두 제외하려면 다음과 같이 (in bash) 실행할 수 있습니다 .

x=(); for a in $(mount | cut -d' ' -f3); do test -e "$a" || x+=("-e$a"); done
lsof "${x[@]}" -f -- /tmp/report.csv

또는 사용하기 위해 stat()( test -e다른 방법으로 구현할 수 있음) :

x=(); for a in $(mount | cut -d' ' -f3); do stat --printf= "$a" 2>/dev/null || x+=("-e$a"); done

11

lsof인수가 특정 파일 시스템에서 결과가 나오지 않는다고 암시하더라도 모든 파일 시스템에 대한 기본 정보를 항상 얻으려고 시도합니다. 파일 시스템에 액세스 할 수없는 경우 (특히 stat메시지가 표시하는대로 마운트 지점에서 호출하기 위해 ) 불평합니다.

루트로서 일반적으로 파일 시스템에 액세스 할 수있는 권한이 있습니다. 그러나 FUSE 의 내부 작동으로 인해 root는 FUSE 파일 시스템에 대한 모든 권한을 자동으로 갖지 않습니다. 이것은 보안 기능이 아니며 (루트는 파일 시스템을 소유하고 사용자에게 액세스하는 사용자가 될 수 있음) 기술적 인 제한 사항입니다.

GVFS - 퓨즈에 FUSE 인터페이스이다 GVFS 그놈 플러그인 구현 Access 가상 파일 시스템 그놈 애플리케이션을 가능하게하는 메커니즘이다 : GVFS은 일반적인 파일 시스템 인터페이스를 통해 이러한 가상 파일 시스템에 대한 비 그놈 프로그램 액세스를 부여.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.