目录权限异常

目录权限异常

我使用的是 Fedora,如下所示:

[root@PANTRY 1000]# os
Linux 6.5.12-200.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Nov 20 22:12:09 UTC 2023 unknown
[root@PANTRY 1000]#

我有一个显示异常权限的子目录,称为“doc”,如下所示:

[root@PANTRY 1000]# ld
ls: cannot access 'doc': Permission denied
ls: cannot access 'gvfs': Permission denied
drwx------. 4 me me  80 Nov 28 21:13 app
drwx------. 2 me me  60 Nov 28 20:07 at-spi
drwx------. 2 me me  60 Nov 29 06:30 dconf
d?????????? ? ?  ?    ?            ? doc
drwx--x--x. 2 me me  60 Nov 29 00:36 gdm
drwx------. 3 me me  60 Nov 28 20:07 gnome-shell
drwx------. 2 me me  40 Nov 28 20:07 gnupg
d?????????? ? ?  ?    ?            ? gvfs
drwx------. 2 me me  40 Nov 29 08:23 gvfsd
drwx------. 2 me me 100 Nov 28 20:07 keyring
drwx------. 2 me me  80 Nov 28 20:07 pulse
drwxr-xr-x. 7 me me 180 Nov 28 20:44 systemd
[root@PANTRY 1000]#

它的位置如下图所示:

[root@PANTRY 1000]# pwd
/run/user/1000
[root@PANTRY 1000]#

我从来没有故意创建过这个目录。

我无法“cd”进入该目录,即使是“root”,见下文:

[root@PANTRY 1000]# cd /run/user/1000/doc/
bash: cd: /run/user/1000/doc/: Permission denied
[root@PANTRY 1000]#

我确实注意到“gvfs”具有类似的权限,但以前见过。这是一个工件还是一个真实的目录,我应该如何处理它?

答案1

/run/run/user/<$UID>mounts 都是类型的内存中文件系统tmpfs,所以你是对的,它不是一个“真正的”(读:持久存储支持)目录。

/run/user/<$UID>/doc/run/user/<$UID>/gvfs挂载也是类型的内存文件系统fuse.portal。该 FUSE 模块的文件系统的特点是只能由控制它的用户 ID 读取。即使root(UID 0) 也无法从此安装读取,除非以该用户身份root使用su <username>sudo -i -u <username>打开 shell。

您可以通过运行以下命令来检查您的坐骑及其类型:

mount |grep /run

您显然可以fusermount -o allow_other ...在安装时指定允许非所有者访问 FUSE 文件系统,但我不知道如何安装此目录,或更改它当前使用的选项。通过卸载fusermount -u /run/user/1000/doc可能会导致问题。

有什么用呢?

根据FHS(文件层次结构标准)最新草案, /run:

该目录包含描述系统自启动以来的系统信息数据。在启动过程开始时,必须清除(根据需要删除或截断)此目录下的文件。

该目录的用途曾经是由 /var/run 提供的。一般来说,程序可以继续使用 /var/run 来满足为 /run 设定的向后兼容性的要求。已迁移到使用 /run 的程序应停止使用 /var/run,除非有关 /var/run 的部分中另有说明。

程序可能有 /run 子目录;对于使用多个运行时文件的程序,鼓励这样做。用户还可能拥有 /run 子目录,但必须注意适当限制访问权限,以防止未经授权使用 /run 本身和其他子目录。

(“必须在启动过程中清除”是吗?听起来像是内存文件系统的完美使用!

对于目录来说/run/user/<$UID>,是由以下命令创建的pam_systemd或者elogind在用户登录时,由在后台运行的不同用户程序使用,例如 dconf、pulse、gnome-keyring-daemon 等,这些程序需要一个位置来存储临时存储,例如锁定文件、PID 文件、套接字等。系统中记录的不同用户UID有多少个目录。这些通常不会存储到磁盘上。理由是它们包含有关的信息跑步程序,因此在系统关闭或重新启动后就没有用处。这也减少了 SSD 的磨损(尽管很小)。

显然/run/user/<$UID>/gvfs是 GNOME 桌面环境专门为与运行 GNOME 桌面相关的服务添加的。

相关内容