尽管用户似乎拥有完全权限,但只能以 root 身份写入

尽管用户似乎拥有完全权限,但只能以 root 身份写入

我在从 Linux 客户端写入 samba 共享时遇到问题(Windows 客户端可以正常读写)。根据从linux客户端运行的ls -la,我应该拥有完全权限:

james@Q35-ICH9:~$ ls -la /mnt/
total 8
drwxr-xr-x  3 root  root  4096 Feb 25 09:38 .
drwxr-xr-x 24 root  root  4096 Feb 25 04:39 ..
drwxrwxrwx 61 james james    0 Feb 26 05:39 cloudshare

james@Q35-ICH9:~$ getfacl  /mnt/cloudshare/
getfacl: Removing leading '/' from absolute path names
# file: mnt/cloudshare/
# owner: james
# group: james
user::rwx
group::rwx
other::rwx

但:

james@Q35-ICH9:~$ touch  /mnt/cloudshare/test
touch: cannot touch '/mnt/cloudshare/test': Permission denied

但如果我使用 sudo,我可以触摸:

james@Q35-ICH9:~$ sudo touch  /mnt/cloudshare/test

用户还具有对父文件夹的完全访问权限:

james@Q35-ICH9:~$ ls -la /mnt/
total 8
drwxrwxrwx  3 james james 4096 Feb 25 09:38 .
drwxr-xr-x 24 root  root  4096 Feb 25 04:39 ..
drwxrwxrwx 61 james james    0 Feb 26 07:42 cloudshare

我很困惑为什么我需要 root 才能写入云共享,即使“james”应该拥有完全权限(据我所知)。

答案1

您的安装选项包括username=neon,表示已使用该用户名建立了与共享的连接。

您没有理由假设本地用户james与 Samba 服务器用户有任何关系neon……或者与服务器用户有james任何关系。这种关系是否通过其他方式建立起来了?

SMB 协议始终在用户名中携带域信息,如果没有指定其他域,则通常使用本地主机名代替。

因此,您看到的已由“james”拥有的文件实际上可能由“[电子邮件受保护]”,这不一定与“james@Q35-ICH9”有任何关系。

如果“james@Q35-ICH9”当前未映射到 Samba 服务器上的任何有效用户,但“root@Q35-ICH9”映射到,则可能可以解释您遇到的问题。

我还在挂载选项中看到vers=1.0,表明您仍在使用已弃用且易受 WannaCry 攻击的 SMB/CIFS 1.0 协议。如果您的 Samba 服务器和 Windows 客户端是最新的,它们都应该支持更高的协议版本。此处报告的版本号表明您的 CIFS 挂载模块还支持更高的协议版本,但如果您使用的是旧版 Linux 发行版,则可能无法自动协商它们。

或者,您可能在某个时候故意将协议版本强制为 1.0。请检查这种强制是否仍然有必要,如果可能的话,请转向更新的协议版本,这将表现更好并且更安全。

相关内容