我看到一些文件/目录即使是 root 用户也无法访问:
find: ‘/run/user/1000/gvfs’: Permission denied
。
所以我更进一步,跑了ls -l
;下面是输出。
/run/user/125# ll
ls: cannot access 'gvfs': Permission denied
total 4
drwx------ 12 gdm gdm 340 Sep 3 10:20 ./
drwxr-xr-x 4 root root 80 Sep 3 10:19 ../
srw-rw-rw- 1 gdm gdm 0 Sep 3 10:19 bus=
drwx------ 3 gdm gdm 60 Sep 3 10:19 dbus-1/
drwx------ 2 gdm gdm 60 Sep 3 10:19 dconf/
drwx--x--x 2 gdm gdm 60 Sep 3 10:19 gdm/
prw-rw-r-- 1 gdm gdm 0 Sep 3 10:19 gnome-session-leader-fifo|
drwx------ 3 gdm gdm 60 Sep 3 10:19 gnome-shell/
drwx------ 2 gdm gdm 140 Sep 3 10:19 gnupg/
d????????? ? ? ? ? ? gvfs/
-rw------- 1 gdm gdm 318 Sep 3 10:19 ICEauthority
d--------- 3 gdm gdm 160 Sep 3 10:19 inaccessible/
drwx------ 2 gdm gdm 100 Sep 3 10:19 keyring/
srw-rw-rw- 1 gdm gdm 0 Sep 3 10:19 pk-debconf-socket=
drwx------ 2 gdm gdm 80 Sep 3 10:19 pulse/
srw-rw-rw- 1 gdm gdm 0 Sep 3 10:19 snapd-session-agent.socket=
drwxr-xr-x 3 gdm gdm 100 Sep 3 10:19 systemd/
为什么我们看到?
file/dir gvfs
?
答案1
问号表示ls
无法读取相应信息;它在输出的顶部报告:
ls: cannot access 'gvfs': Permission denied
gvfs
除了其所有者之外的所有用户都无法访问,甚至 root 也无法访问,因为它是用户拥有的 FUSE 挂载 — 即使 root 也无法访问此类挂载,以防止恶意 FUSE 进程利用这种情况:
$ mount|grep /run/user/125/gvfs
gvfsd-fuse on /run/user/125/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=125,group_id=125)
挂载点显示的信息来自挂载“内部”,唯一允许读取 FUSE 挂载的用户是所有者。 (是的,考虑到用户的预期特权,这有点令人惊讶root
。)