사용자가 읽을 수 있지만 루트는 읽을 수없는 디렉토리? 수 없습니다. #

내 homedir 아래에 “.gvfs”라는 디렉토리가 있습니다. 내 일반 사용자 계정으로 잘 읽을 수 있습니다.

~ $ ls -lart ~raldi/.gvfs
total 4
dr-x------  2 raldi raldi    0 2009-05-25 22:17 .
drwxr-xr-x 60 raldi raldi 4096 2009-05-25 23:08 ..
~ $ ls -d ~raldi/.gvfs
dr-x------ 2 raldi raldi 0 2009-05-25 22:17 /home/raldi/.gvfs

그러나 루트로 “ls”또는 “ls -d”할 수 없습니다.

# ls ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied
# ls -d ~raldi/.gvfs
ls: cannot access /home/raldi/.gvfs: Permission denied

그리고, 확인하기 위해 :

# echo $UID $EUID
0 0

이것은 Ubuntu 8.10의 간단한 홈 설치이며 NFS 나 이상한 것은 없습니다. 나는 디렉토리가 세계가 읽을 수없는 (및 세계가 아닌 x 가능)로 표시되어 있음을 알았지 만 루트 일 때 적용되는 것으로 생각하지 않았습니다. 예를 들어, / tmp에 mode-000 디렉토리를 만들어 루트가 아닌 사용자에게 제공하면 루트는 디렉토리를 읽고 쓰는 데 문제가 없습니다.

무슨 일이야?



답변

보낸 사람 : http://bugzilla.gnome.org/show_bug.cgi?id=534284

이것은 모두 불행한 일이지만, 커널 수준의 퓨즈 사용자가 결정한 결정 (fs를 마운트 한 사용자 이외의 사용자는 루트를 포함하여 액세스 할 수 없음)에 대해 우리가 할 수있는 일은 없습니다.

참조 : https://bugs.launchpad.net/gvfs/+bug/225361

해결책은 /etc/fuse.conf 를 업데이트 하고 user_allow_other 옵션을 활성화하는 것 같습니다 . 그런 다음 allow_root 또는 allow_other를 전달하기 위해 gvfs를 가져와야 할 수도 있지만 어떻게 해야할지 모르겠습니다.

물론 gvfs와 같은 모든 GUI 도구를 포기하고 명령 줄에서 파일 시스템을 마운트하는 방법이 훨씬 쉽습니다.


답변

.gvfs디렉토리는 그놈 원격 파일을 작동 할 때 VFS 인식하지 않는 프로그램에 경로를 통과 할 수 있도록 가상 파일 시스템에 대한 직접 파일 시스템 경로 (예 : 원격 삼바 마운트, WebDAV를 마운트)를 제공 그놈 VFS 사용자 공간 파일 시스템입니다.

FUSE 마운트 및 응용 프로그램이므로 루트에 대한 권한을 거부 할 수 있습니다.이 경우 액세스 검사를 수행하는 에이전트는 커널이 아닌 FUSE 응용 프로그램입니다.

기본적으로 gvfs데몬은 소유자 만 디렉토리를 통과 할 수 있도록합니다.


답변

가능성에 따라 몇 가지 일 수 있습니다.

  • 파일 시스템 손상 가능성에 대해 / var / log / messages (또는 / var / log / syslog)를 확인하십시오.
  • SELinux를 사용하고 있습니까?
  • 구글은 lsattr ~ raldi / .gvfs가 해당 파일에 적용되는 특수 기능을 나타낼 수 있다고 제안합니다.

답변