如何让任何服务器用户修改 Samba 客户端在公共共享上创建的文件(反之亦然)?

如何让任何服务器用户修改 Samba 客户端在公共共享上创建的文件(反之亦然)?

我有一台运行 samba 的 Linux 服务器,它有一个接受来宾连接的公共共享。网络上的任何窗口框都可以编辑/删除共享上的文件,只要这些文件是由来宾创建的(即通过 samba)。

现在,一些用户使用 ssh 访问服务器并添加文件。但他们无法通过 samba 客户端删除文件。同样,客户端无法编辑/删除 ssh 用户创建的文件。

我如何才能创建一个真正的自由公共共享,让任何人都可以在特定文件夹中执行任何操作?如果这很重要的话,该文件夹是 ext4 文件系统的挂载点。

答案1

1) 如果在 smb.conf 中使用以下选项配置共享,则 ssh 用户将能够更改/删除 samba 创建的文件

   create mode = 0777
   directory mode = 0777

2)假设来宾帐户为“nobody”,如果出现以下情况,samba 访问可能会更改/删除 ssh 用户文件:

  • samba 共享挂载点配置为将组 nobody 传播到从 ssh 访问 setgid 创建的文件,例如使用 /home/share 作为共享:

    chgrp 没有人 /home/share

    chmod g+s /home/share

  • ssh 用户必须将其 umask 设置为 0002(=> 这通常是 /etc/profile 中的默认设置)。

相关内容