在Linux客户端机器上挂载Samba Share(Linux服务器)

在Linux客户端机器上挂载Samba Share(Linux服务器)

有与 Windows 客户端共享文件夹的 Linux 服务器,但也有 Linux 客户端计算机。我正在使用 KDE,可以从 Dolphin 挂载,然后在权限允许的情况下处理文件和文件夹:

smb://username@server_address/share_folder_name/

但我需要以常规路径(从控制台、LibreOffice、邮件客户端等)和任何 DE 上访问它的方式安装它。

mkdir /media/sambaShare
smbclient --user=username -L  //server_address

这部分有效,它向我显示 Samba 服务器、共享的文件夹等。

mount -t cifs //server_address/share_folder_name -o username=username /media/sambaShare

看起来它安装一切正常。但是当我尝试访问该文件夹时,我得到:

cannot open directory /media/sambaShare/: Permission denied

它允许以 root 身份进行访问,但不允许以普通用户身份进行访问。为什么我可以通过 Dolphin 以用户身份访问,但常规方式安装不起作用?我在客户端上创建了与服务器中相同的组,可以访问该文件夹,作为用户,我最终可以进入该文件夹并查看其他文件夹,但仅此而已。我什至可以添加文件但不能编辑它们。

我在 Ubuntu 服务器 12.04 客户端计算机 Kubuntu 14.04 上使用 Samba 服务器 3.6.3

答案1

您可能需要将该uid=your-user-id选项添加到您的mount命令中。您可能还需要添加forceuid以忽略来自服务器的用户 ID(Samba 提供了 SMB 扩展以使 Unix 权限按预期工作;只有类 Unix 客户端才会请求它。)组 ID ( gid& forcegid) 也有类似的选项。

为什么?由于正常安装是系统范围的,因此您的本地内核正在强制执行权限。否则,系统上的任何用户都可以访问该共享。如果您不传递uid/,则默认情况gid下是运行的用户mount— 最有可能的是root

mount.cifs有关所有特定于 CIFS 的安装选项,请参阅手册页。

相关内容