有与 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 的安装选项,请参阅手册页。