创建每个人都有写权限的 Samba 共享

创建每个人都有写权限的 Samba 共享

我家里有一台运行 Samba 的 Ubuntu 服务器。我正在尝试设置一个每个人都有读写权限的 Samba 共享。

我将所有用户都置于“sambashare”unix 组中,并希望向“sambashare”组的所有成员提供目录 /data/shared 以供读写访问。

理想情况下,如果用户使用 samba 在其中创建文件,则该文件应具有权限 0644 并归用户名:桑巴共享

我不知道要在 smb.conf 文件中放入什么才能使其工作,或者要赋予 /data/shared 文件夹什么 unix 权限。

答案1

在 smb.conf 中的共享目录部分,放置:

create mask = 0644
directory mask = 2777

首先,g+s对所有目录使用权限,并为 sambashare 组更改它们的权限。s 位将使所创建文件的组与目录组相同(2777 将负责新目录上的 s 位)。

答案2

为了允许组中的每个人SAMBASHARE访问共享,请将以下内容添加到[global]指令中:

create mode = 664
workgroup = SAMBASHARE
security = user
usershare allow guests = yes

要导出,/data/shared您必须在文件末尾添加以下内容:

[data]
comment = shared
path = /data/shared
guest ok = yes
read only = no
public = yes
writable = yes

这应该对你有用,但我强烈建议收集一些更多的 信息

答案3

在努力解决同样的问题并看到很多“解决”了这个问题的无用帖子之后,我终于将我的问题归结为我希望可以组写入的特定共享部分中的一行:

 force directory mode = 2770

“2” 是必需的,如果没有这个,Samba 服务器就不会使新创建的目录可组写入(即 0770 是不够的)。我在 Ubuntu 12.04.01 中使用 Samba 守护程序,使用标准 Windows 客户端来创建目录。

如果这在 smb.conf 手册页中有记录那就太好了......

只是为了澄清,下面的操作对我来说不起作用(即使使用“unix extensions = off”——目录是以权限 0750 创建的):

[MyShare]
   writeable = yes
   force group = somegroup
   ...
   directory mask = 0770
   directory security mask = 0770
   force directory mode = 0770
   force directory security mode = 0770

相关内容