Samba 共享 / Windows 主机 / Ubuntu 客户机

Samba 共享 / Windows 主机 / Ubuntu 客户机

以下是 samba 共享线路 此处为文件夹的权限。我尝试寻找答案,但找不到我理解的答案。我在虚拟机中有一个装有 Windows 10 操作系统和 Ubuntu 的桌面。使用 virtualbox,我将 Windows 主机上的两个文件夹与 Ubuntu 虚拟机共享。我可以使用 Ubuntu 虚拟机查看/创建/删除共享文件夹中的文件和文件夹。

我决定尝试学习一些有关文件共享的知识。我在 Ubuntu 中创建了一个 Samba 共享,用于我的 Windows 操作系统。我可以从 Windows 查看和创建文件夹到我的 Ubuntu Samba 共享中,但无法从 Windows 中删除它们。我可以通过 ssh 进入并从 Windows 中删除我创建的文件夹。我可以在 Ubuntu 中删除它们,但无法从 Windows 文件资源管理器中删除它们。

我创建了 Samba 共享,因为我想让家里的其他人也能观看我的电影收藏,而不需要他们安装 Plex 或类似的东西。这样,我就可以使用笔记本电脑上的 VLC 应用观看电影。我还想学习如何进行网络共享等。

为什么我可以从 Windows 命令行删除 Samba 共享上的文件夹,但不能从文件资源管理器删除?

答案1

首先欢迎来到 AskUbuntu。

你正在与 Linux 权限作斗争。

默认情况下,在 samba 共享中您可以从客户端创建文件,但无权删除它们。

当您从 samba 共享中的客户端(即 Windows)创建文件时,它是使用掩码创建的0644,但客户端不是目录的所有者,因此您无法删除它。

首先,user在这里创建一个特定的sambashare,但您可以自定义它。

sudo adduser --system sambashare

创建挂载点

sudo mkdir /mnt/MyStuff

更改共享目录的所有者

sudo chown -R sambashare:sambashare /mnt/MyStuff

更改目录权限为755

sudo chmod 755 /mnt/MyStuff

然后简单强制 Samba 使用用户sambashare

[MyStuff]
path = /mnt/MyStuff
writeable = yes
browseable = yes
read only = no
public = yes
create mask = 2755
directory mask = 2755
force user = sambashare

然后重启samba

sudo systemctl restart smbd

找到uidgid创建用户使用

cat /etc/passwd | grep sambashare

给出sambashare:x:122:65534::/home/sambashare:/usr/sbin/nologin

cat /etc/group | grep sambashare

给出sambashare:x:122:cube

根据输出uidgid122

编辑以使用正确/etc/fstab的方式添加挂载点的条目uiggid

MyStuff    /mnt/MyStuff  vboxsf  uid=122,gid=122,umask=0022 0 0

注意这MyStuff是您在 virtualbox 下创建共享目录时提供的名称。

现在添加模块vboxsf/etc/modules强制在启动时加载模块。

VirtualBox应用程序中删除该选项automount

然后重新启动。现在您应该能够从 Windows 创建/删除共享目录中的文件。

相关内容