如何通过FSTAB挂载CIFS共享并将完整的RW提供给Guest

我想创建一个具有完全RW访问权限的Public文件夹。 我的配置问题是Windows用户没有问题作为访客(他们可以RW和删除),我的Ubuntu客户端不能这样做。 我们只能写和读,但不能创建或删除。

这是我服务器上的smb.conf:

[global] workgroup = WORKGROUP netbios name = FILESERVER server string = TurnKey FileServer os level = 20 security = user map to guest = Bad Password passdb backend = tdbsam null passwords = yes admin users = root encrypt passwords = true obey pam restrictions = yes pam password change = yes unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . add user script = /usr/sbin/useradd -m '%u' -g users -G users delete user script = /usr/sbin/userdel -r '%u' add group script = /usr/sbin/groupadd '%g' delete group script = /usr/sbin/groupdel '%g' add user to group script = /usr/sbin/usermod -G '%g' '%u' guest account = nobody syslog = 0 log file = /var/log/samba/samba.log max log size = 1000 wins support = yes dns proxy = no socket options = TCP_NODELAY panic action = /usr/share/samba/panic-action %d [homes] comment = Home Directory browseable = no read only = no valid users = %S [storage] create mask = 0777 directory mask = 0777 browseable = yes comment = Public Share writeable = yes public = yes path = /srv/storage 

以下FSTAB条目不会对共享产生完整的R / W访问权限。

 //192.168.0.5/storage /media/myname/TK-Public/ cifs rw 0 0 

这也不起作用

 //192.168.0.5/storage /media/myname/TK-Public/ cifs rw,guest,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0 

使用Nemo / Nautilus中的以下位置没有正在安装的共享确实有效:

 smb://192.168.0.5/storage/ 

额外信息。 我刚刚注意到,如果我在挂载后将文件复制到共享,我的Ubuntu客户端会立即将“nobody”作为所有者,并且“no group”组已经读取和写入,其他所有人都是只读的。

在此处输入图像描述

我究竟做错了什么?

事实certificate我需要在FSTAB中的挂载行添加本地(客户端)UID才能使其正常工作。 我通过纯粹的蛮力来到这里:

 //192.168.0.5/storage /media/myname/TK-Public/ cifs guest,uid=myuser,iocharset=utf8,file_mode=0777,dir_mode=0777,noperm 0 0 

CIFS通常没有任何用户和组的概念,因此挂载cifs共享将默认将用户和组显示为“nobody”:

 drwxdrwxdrwx. 3 nobody nobody 0 Sep 29 09:00 . drwxdrwxdrwx. 9 nobody nobody 0 Sep 29 09:00 .. 

既然你不是’没人’,除非你使用sudo,否则Linux不会让你写任何没有0777权限的东西。 要解决此问题,请将uid = mylogin,gid = mygroup添加到fstab,它将使共享显示为您自己的目录:

 drwxdrwxdrwx. 3 mylogin mygroup 0 Sep 29 09:00 . drwxdrwxdrwx. 9 mylogin mygroup 0 Sep 29 09:00 .. 

你现在可以完全控制而不需要sudo。

这实际上并没有改变服务器上的任何内容,因为服务器没有强制执行任何操作。 它告诉Linux假装您是所有者并为您提供不受限制的访问权限。

你快到了。 使用以下命令打开FSTAB:

 sudo nano /etc/fstab 

在最后一行(或最后一行)上:

 //192.168.0.5/storage /media/myname/TK-Public/ cifs username=YOURUSERNAME,password=YOURPASSWORD,iocharset=utf8,file_mode=0777,dir_mode=0777 

***(这是一条长线)

CtrlX关闭, Y保存,Enter输入密封交易。

现在重启:

 sudo reboot 

您应该完全控制Linux设备上的网络共享!

我有这个问题,这是因为共享的用户没有拥有它。 我用“sudo chown {username}:{username} / {share} / {path}”修复它,之后我可以移动和删除文件。