“?” 是什么意思?意思是 ls -l 输出?

“?” 是什么意思?意思是 ls -l 输出?

我看到一些文件/目录即使是 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。)

相关内容