我正在研究unix域套接字上的tutorial。我对接收器部分有疑问。
如果进程正在使用listen()并等待传入的请求:
它有什么选择让自己安全?是否有办法确定谁发送了请求?它可以对谁可以向其发送请求施加一些限制吗?
是否存在没有安全选项的情况,如果进程使用listen(),它对任何请求完全开放?
答案 0 :(得分:4)
Linux上的一般想法是安全性由UNIX套接字"文件"上的文件权限强制执行。在文件系统中。进程必须具有对socket特殊文件的读/写访问权限。
在Linux实现中,可见的套接字 filesystem尊重它们所在目录的权限 可以更改所有者,组和权限。创造一个新的 如果进程没有写入和搜索,socket将失败 (执行)对创建套接字的目录的权限。 连接到套接字对象需要读/写权限。这个 行为不同于许多忽略的BSD派生系统 UNIX域套接字的权限。便携式程序不应该 依靠此功能来保障安全。
但是,似乎无处不在,目录搜索权限 无处不在。因此,对于在套接字专用文件的整个路径上具有执行访问权限的用户,您的套接字只能connect()
- 在所有操作系统上都是如此。
相关:强>