在新安装的 Ubuntu(budgie 18.04)上,我共享了公共文件夹并设置了权限以允许访客访问以及创建和删除(使用共享 GUI)。联网的 Windows 计算机现在可以访问。
我使用相同的设置共享了另一个文件夹(在外部驱动器上,ext4)。Windows 可以看到它,但显示权限被拒绝。使用 stat -c "%a %n" /path/to/folder 检查权限,结果显示 Public 和“test”(新共享文件夹的名称)上的权限相同。
进一步探索,检查用户“nobody”的访问权限,sudo -u nobody ls ~/Public 列出了 Public 中的文件,但是,尝试新的共享文件夹时,sudo -u nobody ls /path/to/test 返回权限被拒绝。通过外部驱动器的根目录向上查找路径,/media/user 也会被拒绝权限。但 /sudo -u nobody ls /media 成功,列出了 /media 中的文件。
因此,看起来用户 nobody 在目录“test”前面的路径中被阻止了。需要的是一种简单的单步方法(我认为 GUI 会这样做,但显然不是或并不总是)来共享网络文件夹并允许访客访问。
这是 Samba 的问题还是权限的问题?
谢谢你的时间。
答案1
您的外部分区正在安装到 /media/$USER/XXX。Linux(不是 samba)仅允许 $USER 遍历 /media/$USER 文件夹以到达 XXX 文件夹。远程来宾用户不是 $USER,因此尽管 XXX 上的权限允许所有人访问,但 Linux 不允许任何人访问。
由于您的所有共享都允许访客访问,并且您正在使用文件管理器创建共享,因此我建议让远程用户看起来像您 - 至少对于那些共享:
** 编辑 /etc/samba/smb.conf
** 在该行下方workgroup = WORKGROUP
添加这行:
force user = morbius
将morbius更改为您自己的Linux登录用户名。
** 然后重新启动 smbd:
sudo service smbd restart