如何为在 Samba 共享中创建的文件设置默认组

Rol*_*Bly 12 samba windows

我正在/home/pi/pydev与 Samba 在 debian 机器(实际上是树莓派)上共享一个目录。我正在从 Windows 7 机器读取和写入该目录。当我在 W7 下创建该目录中的文件时,它获得 0764 权限,并且它由用户 rolf 和组 rolf 所有 - 这就是 W7 机器上的我。

debian 机器上的用户 pi 和用户 rolf(W7 上)都需要能够修改该目录中的文件,因此我将它们都设为组成员coders,希望我可以对其进行配置,以便编码人员的成员至少具有读写权限访问该目录中的文件。.

但是用户 pi 不能修改属于 rolf 组的任何文件。

我可以chmod rolf:coders <filename>逐个归档。
将用户 pi 添加到组 rolf 是丑陋的,并且不起作用(没想到。除了 Debian 之外,Samba 是否与组保持完全不同的用户管理?)。
我也可以以 rolf 的身份登录到 debian 机器,然后导航到该文件夹​​。

但最优雅的方式(对我而言)是,默认情况下,如果由 rolf 从 W7 机器创建的文件将获得 userid rolf 和 groupid 编码器。

我可以配置 Samba 来做到这一点,还是有其他方法可以自动执行该任务?

dev*_*ull 14

如果我理解您的要求是正确的,那么您想要的是smb.conf位于此处的内容:

   /etc/samba/smb.conf
Run Code Online (Sandbox Code Playgroud)

将这些选项添加到该[global]部分:

   force user = rolf
   force group = coders
Run Code Online (Sandbox Code Playgroud)

  • 如果像我一样有人想要添加用户、组和实际权限字符串,请添加 `create mask = 0775` (2认同)
  • 您确实知道“force”指令使*任何*用户作为指定的用户/组执行操作吗?比如说,你有一个共享“/joe”和一个共享“/anne”,如果你在共享“/anne”上执行“force user = anne”,那么用户“joe”可以访问“/anne”,这是大忌并且存在很大的安全隐患!这个选项非常具有误导性,应该更好地记录下来,不要轻易使用 (2认同)

小智 9

您可以尝试为该文件夹上的组添加粘性位

chmod 2770 foldername
find foldername -type d -exec chmod g+s {} \;
Run Code Online (Sandbox Code Playgroud)

  • 它有什么作用? (2认同)