为什么我无法从 Windows 访问共享文件夹

Ron*_*Ron 4 permissions windows samba

我想从我网络上的任何机器访问我的新 Ubuntu 12.10 机器上的文件夹,而无需提供凭据。

我的机器名称是 Ubuntu1

我有一个 2TB 的磁盘,它格式化了 NTFS,上面有媒体

挂载点是mount1

我在磁盘上有很多文件夹,我想单独共享每个文件夹

我已启用文件夹 1 和文件夹 2 进行共享

我已启用共享访问,允许其他人在此文件夹中创建和删除文件,并允许访客访问。

文件夹图标现在有箭头,所以我认为一切都很好。

从窗口我可以在网络下看到

Ubuntu1>文件夹1 Ubuntu1>文件夹2

当我单击从 Windows 打开文件夹时,出现错误“您无法访问 \Ubuntu1\folder1

您无权访问 \Ubuntu1\folder1

我让他们都在同一个工作组中。

您的帮助将不胜感激

Pau*_*ker 5

尝试在您的 Ubuntu 服务器上运行此命令:

sudo -u nobody ls "/path/to/my/share"
Run Code Online (Sandbox Code Playgroud)

这将尝试以 user 身份访问您的共享文件夹nobody。如果您看到这样的错误:

ls: cannot access /path/to/my/share: Permission denied
Run Code Online (Sandbox Code Playgroud)

那么您的本地权限就是问题所在(或至少是问题的一部分)。


Samba 使用 Linux 文件系统权限来确定是否应该授予对共享文件的访问权限;如果权限阻止访问共享文件夹本身,Samba 将完全拒绝其他计算机连接到共享。来宾访问使用nobody用户(来自组nogroup),因此您应该使用“其他用户”文件权限来确保来宾可以访问您的共享文件夹。


检查从/下到共享文件夹的所有目录的权限也很重要:如果用户没有目录的执行权限,那么他们将被阻止访问该点以下的任何路径,包括您的共享。(我ls通过从中间目录中删除“x”权限来创建上面的错误消息。)

假设你想分享/mnt/external/ntfs-drive/folder。您可以使用以下命令在所有父目录上添加“x”权限:

sudo chmod o+x /mnt /mnt/external /mnt/external/ntfs-drive
Run Code Online (Sandbox Code Playgroud)

您还需要为共享文件夹和任何内容设置读、写和执行权限,但对于父目录执行权限就足够了。