我有一台运行 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 中的默认设置)。