unix域套接字 - 保护接收器

时间:2015-02-28 00:15:20

标签: sockets unix

我正在研究unix域套接字上的tutorial。我对接收器部分有疑问。

如果进程正在使用listen()并等待传入​​的请求:

  • 它有什么选择让自己安全?是否有办法确定谁发送了请求?它可以对谁可以向其发送请求施加一些限制吗?

  • 是否存在没有安全选项的情况,如果进程使用listen(),它对任何请求完全开放?

1 个答案:

答案 0 :(得分:4)

Linux上的一般想法是安全性由UNIX套接字"文件"上的文件权限强制执行。在文件系统中。进程必须具有对socket特殊文件的读/写访问权限。

unix(7) man page表示:

  

在Linux实现中,可见的套接字          filesystem尊重它们所在目录的权限          可以更改所有者,组和权限。创造一个新的          如果进程没有写入和搜索,socket将失败          (执行)对创建套接字的目录的权限。          连接到套接字对象需要读/写权限。这个          行为不同于许多忽略的BSD派生系统          UNIX域套接字的权限。便携式程序不应该          依靠此功能来保障安全。

但是,似乎无处不在,目录搜索权限 无处不在。因此,对于在套接字专用文件的整个路径上具有执行访问权限的用户,您的套接字只能connect() - 在所有操作系统上都是如此。

相关: