在将文件下载到 NFS 挂载时,Ubuntu 20.04 上的 Firefox 会收到“您没有适当的权限”

在将文件下载到 NFS 挂载时,Ubuntu 20.04 上的 Firefox 会收到“您没有适当的权限”

我在工作中运行了多台 Ubuntu 20.04 桌面虚拟机,每台虚拟机都遇到了一个问题仅有的当用户尝试下载文件时 Firefox。

因此,首先介绍一下我们的 Ubuntu VM 是如何配置的。

虚拟机配置

我们设置的方式是用户启动与 VM 的 RDP 会话。他们通过sssd守护进程进行身份验证,该守护进程通过 LDAP 将提供的凭据发送到我们的 Active Directory 域。
然后,AD 返回所有用户信息,以便sssd可以使用适当的 UID、GID、主目录等开始会话。以下是 AD 将返回的信息示例sssd

root@server:~# getent passwd pwalker
pwalker:*:123456:40:pwalker:/u/pwalker:/bin/bash

我们在每个用户的 AD 配置文件上配置了一个非标准主目录,这样当用户登录到 Ubuntu VM 时,autofs守护程序可以自动将网络驱动器文件夹挂载为用户的主目录。
这是一种方便的方法,可以保持 VM 的存储空间较小,同时为用户提供一种将文件从一个 Ubuntu VM 传输到另一个 Ubuntu VM 的简便方法。
以下是 的配置autofs

root@server:~# cat /etc/auto.master
+dir:/etc/auto.master.d
/u      /etc/auto_home
root@server:~# cat /etc/auto_home 
* -rw,intr,nosuid,soft,proto=tcp    sannfs:/ifs/userhome/&

以下是一些安装信息,以防根本原因与所使用的选项有关。

sannfs:/ifs/userhome/pwalker on /u/pwalker type nfs (rw,nosuid,relatime,vers=3,rsize=131072,wsize=524288,namlen=255,soft,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=xxx.xxx.xxx.xxx,mountvers=3,mountport=300,mountproto=tcp,local_lock=none,addr=xxx.xxx.xxx.xxx)

这是我连接到虚拟机时用户挂载主目录的快照。

pwalker@server:~$ pwd
/u/pwalker
pwalker@server:~$ ls -la
total 1320
drwxrwxrwx 20 pwalker standard   854 Mar 16 07:58 .
drwxr-xr-x  4 root    root         0 Mar 16 09:29 ..
-rwxrwxrwx  1 pwalker standard    21 Mar 15 16:51 .bash_aliases
-rwxrwxrwx  1 pwalker standard  1423 Mar 16 08:05 .bash_history
drwxrwxrwx 18 pwalker standard   678 Mar 16 08:12 .cache
drwxrwxrwx 15 pwalker standard   443 Mar 16 08:12 .config
drwxrwxrwx  2 pwalker standard     0 Mar  1 10:58 Desktop
drwxrwxrwx  2 pwalker standard     0 Mar 16 08:14 Documents
drwxrwxrwx  2 pwalker standard    25 Mar 16 09:29 Downloads
-rwxrwxrwx  1 pwalker standard    16 Mar  1 14:33 .esd_auth
drwxrwxrwx  3 pwalker standard    93 Mar 16 08:13 .gnupg
-rwxrwxrwx  1 pwalker standard   322 Mar 15 16:27 .ICEauthority
drwxrwxrwx  3 pwalker standard    23 Mar  1 10:58 .local
drwxrwxrwx  4 pwalker standard    53 Mar 15 16:52 .mozilla
drwxrwxrwx  2 pwalker standard     0 Mar  1 10:58 Music
drwxrwxrwx  2 pwalker standard     0 Mar  1 10:58 Pictures
drwxrwxrwx  3 pwalker standard    23 Mar 15 16:27 .pki
drwxrwxrwx  2 pwalker standard     0 Mar  1 10:58 Public
drwxrwxrwx  2 pwalker standard     0 Mar 10 14:01 .ssh
drwxrwxrwx  2 pwalker standard     0 Mar  1 10:58 Templates
drwxrwxrwx  2 pwalker standard     0 Mar  1 10:58 Videos
drwxrwxrwx  2 pwalker standard    67 Mar 15 16:27 .vnc
-rwxrwxrwx  1 pwalker standard   352 Mar 16 07:35 .Xauthority
-rwxrwxrwx  1 pwalker standard 18835 Mar 10 14:02 .xorgxrdp.12.log
-rwxrwxrwx  1 pwalker standard  4266 Mar 16 07:35 .xsession-errors

观察到的功能

当连接到虚拟机时,我可以使用wget终端将文件直接下载到我挂载的主目录。

我安装了 Google Chrome 并可以顺利下载文件,并将文件直接保存到我挂载的主目录中。

我可以使用 Firefox 的“右键单击,将图像另存为”功能直接保存图像。

使用来自的测试文件https://filesamples.com,我无法使用 Firefox 的“右键单击,将链接另存为”功能保存文件链接。
我也无法通过单击提供的“下载”按钮来保存文件。

我经常收到的错误信息是

由于您没有适当的权限,因此无法保存文件。请选择其他保存目录。

如果我在已挂载的主目录中选择另一个目录,我会收到相同的错误消息。

如果我选择虚拟机本地的目录(例如/tmp),则文件会被成功下载。

使用about:memoryFirefox 窗口,我找到了主进程 ID,以确认 Firefox 正在以我的用户/组身份运行(通过检查 的内容cat /proc/###/status)。我确认确实如此。

提问时间

  • 是否有一个 Firefox 调试器可以提供更有用的上下文?
  • 当 Firefox 尝试将文件直接保存到网络驱动器时,在虚拟机上本地运行是否存在问题?
  • 是否还有其他权限/设置需要我检查?

答案1

问题最终不是出在 Ubuntu 或 Firefox 本身上,我猜这可以从症状中推断出来。

解决方案是解决写入的一些权限问题伊西隆全球定位系统通过 NFS 共享。存储管理员必须调整一些 Windows ACL(因为我们的团队就是这样控制用户在共享上的读/写权限的)并将Delete subfolders and files特殊权限添加到 ACL。此权限等同Delete ChildNFSv4,这显然是 Firefox 所需要的。

管理员表示他也观察到了类似的“ACL 权限”问题:

  • CentOS 8:FTP 协议
  • CentOS 8:虚拟 Python 环境(virtualenv)

希望这可以帮助其他人找到解决其问题的方法。保持警惕!

相关内容