루트로 실행되고 있는데 왜 / run / user / 1000 / gvfs read를 찾을 수 없습니까?


34

누군가 내가 뭘 잘못하고 있는지, 이것이 무엇인지, 어떻게 고칠 수 있는지 말해 줄 수 있습니까? Fedora 18을 실행 중이며 오류가 표시됩니다.

[root@servername /]# find . -name ngirc
find: `./run/user/1000/gvfs': Permission denied
[root@servername /]# 
[root@thinktank /]# pwd
/
[root@thinktank /]# ls -ltr ./run/user/1000
ls: cannot access ./run/user/1000/gvfs: Permission denied
total 0
d?????????? ? ?    ?      ?            ? gvfs
lrwxrwxrwx. 1 root root  17 May 28 12:30 X11-display -> /tmp/.X11-unix/X0
drwx------. 2 kal  kal  120 May 28 12:30 keyring-QjDw4b
drwx------. 2 kal  kal   40 May 28 12:30 gvfs-burn
drwx------. 2 kal  kal   60 May 28 12:30 krb5cc_5f0bcaf94f916d6b61696e2251a4dbb3
drwx------. 2 kal  kal   60 May 28 18:25 dconf

당신은 잘못된 일을하지 않으며 내 제안은 단순히 오류를 무시하는 것입니다. 이것이 허용되지 않으면 find명령 행 에서 GVFS 마운트 포인트를 제외하는 것은 어떻습니까?
tripleee

답변:


33

당신은 잘못한 것이 없으며 고칠 일이 없습니다. /run/user/$uid/gvfs또는 GVFS~$user/.gvfs 에 대한 FUSE 인터페이스 의 마운트 지점입니다 . GVFS는 Gnome에 대한 가상 파일 시스템 구현으로, Gnome 애플리케이션이 FTP 또는 Samba 서버와 같은 자원 또는 로컬 디렉토리와 같은 zip 파일의 컨텐츠에 액세스 할 수 있도록합니다. FUSE는 파일 시스템 드라이버를 커널 코드 대신 사용자 코드로 구현하는 방법입니다. GVFS-FUSE 게이트웨이는 Gnome 라이브러리를 사용하는 것뿐만 아니라 모든 응용 프로그램이 GVFS 파일 시스템 드라이버에 액세스 할 수 있도록합니다.

파일 시스템 드라이버는 기존 파일 시스템의 커널 코드와 달리 권한이없는 사용자로 실행되기 때문에 FUSE 파일 시스템으로 신뢰 경계를 관리하기가 어렵습니다. 복잡성을 피하기 위해 기본적으로 FUSE 파일 시스템은 드라이버 프로세스를 실행하는 사용자 만 액세스 할 수 있습니다. 루트 조차도이 제한을 무시하지 않습니다.

로컬 파일 시스템에서만 파일을 검색하는 경우으로 전달 -xdev하십시오 find. 여러 로컬 파일 시스템을 순회하려면 모두 열거하십시오.

find  / /home -xdev -name ngirc

파일이 어제부터 존재했다면 locate ngirc대신 시도 할 수 있습니다 ( locate일반적으로 매일 밤 업데이트되는 파일 이름 데이터베이스를 통해 검색).

GVFS 마운트 지점을 통과하려면 적절한 사용자로 수행해야합니다.

find / -name ngirc -path '/run/user/*/gvfs' -prune -o -path '/home/*/.gvfs' -prune -o -name ngirc -print
for d in /run/user/*; do su "${d##*/}" -c "find $d -name ngirc -print"; done

GVFS와 FUSE에 대한 훌륭한 설명에 감사드립니다. 나는 당신의 예에서와 같이 '찾기'를 시도했지만 훌륭하게 작동했습니다.
kal

FUSE는 루트가 파일에 액세스하는 것을 어떻게 방지합니까? 확실히 root는 그러한 보호 기능을 비활성화 할 수 있습니다.
키노

1
@Nat Root는 프로세스의 fsuid를 대상 uid로 변경할 수 있으므로 보안을 우회하는 것은 간단합니다. 그러나 커널의 액세스 제어 기능은 루트에 대한 액세스를 거부합니다. 이 현상은 다른 파일 시스템에서도 발생합니다. 예를 들어 root는 소유자의 UID로 전환하지 않고 NFS의 개인 디렉토리에 액세스 할 수 없습니다.
Gilles 'SO- 악마 그만'

2
"복합을 피하십시오"... 글쎄, mount 명령을 사용하여 공유 경로를 더 깨끗한 폴더 이름으로 매핑 할 수 없기 때문에 큰 합병증이 발생했습니다. sudo mount를 사용할 때 root에 대한 액세스가 거부되었습니다.
Nuzzolilo

@ Nuzzolilo 나는 당신이 무슨 말을하는지 전혀 모른다. 문제가있는 경우 새로운 질문을하고 시나리오를 설명하십시오.
Gilles 'SO- 악마 그만해'

10

그것은 A의 퓨즈 문제 . 소유자 이외의 사용자는 읽을 수 없습니다. 기본 구성을 해결하려면 user_allow_other 옵션을 활성화하십시오. 이 옵션은 /etc/fuse.conf에 추가하여 지정됩니다. 값이 없으므로 빈 줄에 옵션을 지정하십시오.


감사. 나는 퓨즈가 무엇인지 이해하지 못하지만 귀하의 의견과 don_crissti의 의견에있는 버그 보고서에서 조금 읽은 후에 이것은 내가 연결 한 USB 하드 드라이브 또는 내 삼바 서버와 관련이 있다고 생각합니까? "user_allow_other"를 활성화 할 때 고려해야 할 보안 문제가 있으며 고려해야 할 다른 마운트 옵션이 있습니까? 감사.
kal

1
고맙지 만 다른 사람이 시스템을 사용할 수 없다면 이것은 실제로 해결책이 아닙니다. 소유자가 누구인지 어떻게 알 수 있습니까? 외장 하드 드라이브를 마운트 해제 / 연결 해제하고 삼바 서버를 종료하려고했습니다. 내가 정말로 원하는 것은 보안을 손상시키지 않고 전체 파일 시스템에서 파일을 검색하는 것입니다. 퓨즈에 대한 대안이 있습니까? 그리고 그것이 무엇을 사용하고 있는지 정확하게 말할 수있는 방법이 있습니까? 감사.
kal

askubuntu.com/questions/715637/… @Christopher 의 제안을 시도했지만 명령 행 옵션이 존중되지 않습니다. 데몬 자동 실행기가 특정 방식으로 구성되어 있다고 생각하지만 구성 문서를 찾을 수 없습니다.
Nuzzolilo

3

다음과 같이 gvfs에 대한 권한 및 기타 세부 사항을 얻는 경우

d?????????? ? ?    ?      ?            ? gvfs

다음 명령을 사용하여 gvfs를 마운트 해제하십시오. 이 절차를 따르면 문제가 해결됩니다.

umount ~/gvfs(umount /run/user/112/gvfs in my case).

GVFS (GNOME Virtual File System)는 GNOME 데스크탑 용 가상 파일 시스템으로, udev 통합을 통해 SFTP, FTP, WebDAV, SMB 및 로컬 데이터를 통해 원격 데이터에 쉽게 액세스 할 수 있으므로 마운트 해제시 두려워 할 필요가 없습니다. .


3

이것은 오래된 스레드이지만 그놈 버그 보고서에서는 최근에 공개 된 문제이므로 gvfs-fuser 문제를 해결하기위한 솔루션을 몇 시간 동안 검색하는 사람에게 유용 할 수 있습니다. 모두 밀접하게 관련되어있는 것 같습니다.

meld의 오류 메시지 :

Error copying '/media/root/5FDA03906F33F217/SAVE/rsyncTEST-usb/allusers' to '/run/user/0/gvfs/ftp:host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'

[Errno 95] Operation not supported: '/run/user/0/gvfs/ftp:host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'.

ftp를 통해 meld / diff / kdiff를 사용하려는 gvfs-fuser 문제가 발생했습니다. 퓨저와 gvfs 사이에 문제가있는 것 같습니다. 3.15.1에서는 문제가 발생하지 않지만 3.15.2에서보고되기 시작합니다. (새로운 파이썬 버전?) 해결책은 해결책이 아닙니다. 파일 / 디렉토리는 복사되지만 오류는 여전히 표시됩니다.

Christopher의 답변 은 문제를 정의하고 해결책을 제공합니다.

또 다른 가능한 해결책은 sshfs를 사용하는 것입니다 ( 이 주석이 스레드 참조 ). 에 대한 자세한 내용 은 gvfs 명령과 cat, ls, cp와 같은 일반적인 명령의 차이점gvfs-commands무엇입니까?를 참조하십시오 .

아마도 관련 버그는 그놈 # 317875그놈 # 768281 입니다.

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