linux - Samba、CIFS 和删除文件

标签 linux samba cifs

所以我在服务器 A 上有一个 Samba 共享。我将该共享安装到另外两台服务器 B 和 C。这个想法是 B 和 C 需要将临时文件写入单个位置,以便多个后台处理作业(也在 B 和 C 上运行)可以访问同一文件池。

当后台进程完成时,它们会删除正在处理的文件。当我在删除文件后列出共享的目录时,原始文件名现在是 cifs79cifs78 等。它们占用与原始文件相同的空间,因此我认为它们是原始文件,只是重命名。

问题是这些文件不会消失,除非我重新启动 samba(我不打算这样做)。我是否缺少一个可以立即删除文件的简单配置参数?

我使用此命令创建了我的共享:

mount -t cifs //10.251.251.251/uploads ./uploads -o username=samba_user,noexec

文件以 -rw-------- 形式进入共享,并在更改名称后保持这种状态。

这是完整的 smb.conf 文件:http://gist.github.com/172474运行smbstatus的结果:http://gist.github.com/172478

<小时/>

更多信息:

如果我从安装了共享的盒子中手动创建文件,我可以毫无问题地创建、编辑、删除。如果我启动 IRB(交互式 ruby​​) session ,我可以使用 Ruby 创建/删除文件,没有问题。似乎是应用程序本身创建了具有奇怪权限的文件。虽然应用程序和我的 IRB session 以同一用户身份运行,所以他们应该具有相同的权限来执行任何操作。

感谢您的帮助!

最佳答案

您有权访问 samba 服务器的完整配置吗?我知道一个常见的习惯用法是配置 samba 执行除通过服务器删除命令删除文件之外的其他操作,以便在网络上实现“垃圾箱/回收站”风格的功能。重命名原始目录中的文件有点不寻常,但仍然是可能的。

关于linux - Samba、CIFS 和删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1314440/

相关文章:

networking - 尝试连接 samba 客户端时出现 NT_STATUS_IO_TIMEOUT

docker - 无法在 Docker 容器中挂载 cifs 文件系统

java - ANDROID:在 Java 中访问 CIFS 共享

linux - `...' 的 $1 在 Bison/Yacc 中没有声明类型

linux - 将视频与入点/出点拼接在一起

linux - 如果 mmap() 没有 fd(使用 MAP_ANONYMOUS),将调用哪个函数?

cocoa - NSFileModificationDate 在 SMB 挂载上未正确设置

linux - 查看Linux下存储的windows文件名

java - 当我在 Linux 中启动 Spring Boot 应用程序作为系统服务时,日志文件没有生成?

ubuntu - 无法在 Samba Share 中打开 VScode