我很难从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用户才能写到cloudshare,即使“james”应该拥有完全的权限(据我所见)。
发布于 2019-02-26 15:42:34
挂载选项包括username=neon
,指示已使用该用户名建立到共享的连接。
您没有理由假设本地用户james
将以任何方式与Samba服务器用户neon
有关.或者是服务器用户james
。这种关系是以其他方式建立的吗?
SMB协议总是在用户名中携带域信息,如果没有指定其他域,则通常在其位置使用本地主机名。
因此,您认为"james“已经拥有的文件实际上可能属于"james@10.0.0.x",这与"james@Q35-ICH9”不一定有任何关系。
如果"james@Q35-ICH9“目前没有映射到Samba服务器上的任何有效用户,但是"root@Q35-ICH9”映射到,这可能会解释您遇到的问题。
我还在挂载选项中看到了vers=1.0
,这表明您仍然在使用废弃的和WannaCry-易受攻击的SMB/CIFS1.0协议。如果您的Samba服务器和Windows客户端都是最新的,那么它们都应该支持更高的协议版本。此处报告版本号的事实表明,您的CIFS挂载模块也支持更高的协议版本,但如果使用旧的Linux发行版,则可能不会自动协商它们。
或者,您可能在某个时候故意将协议版本强制为1.0。请检查这种强制是否仍然是必要的,如果可能的话,请转到更新的协议版本,该版本将执行得更好,并且更安全。
https://unix.stackexchange.com/questions/503132
复制相似问题