linux - 防止文件系统中的 Unix 域套接字文件在套接字绑定(bind)时被删除

标签 linux macos unix unix-socket

是否可以在 Linux 或 MacOSX 上防止当前绑定(bind)的 Unix 域套接字文件(例如/tmp 中)被删除?我想要一个模式 0777 套接字,用户可以连接到该套接字,但在守护程序运行时用户无法删除。

现在普通用户可以“rm”套接字,防止其他任何人访问它,直到守护程序重新启动。如果它被绑定(bind),它似乎应该是“忙”。

最佳答案

创建套接字后,您可以创建一个新的子目录并对该目录设置只读权限:

mkdir /tmp/blah
cd /tmp/blah
# do stuff to create /tmp/blah/socket
chmod 555 /tmp/blah


rm /tmp/blah/socket

rm: cannot remove /tmp/blah/socket: Permission denied

(或等效于 C 语言/您选择的语言)

关于linux - 防止文件系统中的 Unix 域套接字文件在套接字绑定(bind)时被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22825610/

相关文章:

macos - 为 Mac OSX 应用自定义 Emacs

bash - 如何比较unix中的用户输入

c - 如何在 ubuntu 11.10 上调用 setjmp?

linux - 如何使用 qmake 将库文件构建到 DEB 包中而不是构建到我的系统中?

linux - 如何在Linux中获取被特定进程修改的文件

linux - 打开一个新的终端会产生一个新的 shell 吗?

c++ - 是否有异步方式知道文件已更改?

linux - Bash 脚本中的解析错误

cocoa - 使用 plist (cocoa osx) 设置与我的应用程序关联的资源的图标

MySQL 5.7.21 安装 Mac 但有偏好错误