Cla*_*diu 7 c sockets permissions
我有一个程序,它创建一个套接字,然后我想更改套接字文件的权限:
ret_val = chmod(filename, 0777);
Run Code Online (Sandbox Code Playgroud)
,但它不会改变,即使ret_val为0.如果我在常规文件上尝试相同的操作,它也可以.
有任何想法吗?
PS:我以root身份运行程序,因此它拥有所需的所有权限.
Die*_*Epp 19
来自man 7 unix
:
在Linux实现中,文件系统中可见的套接字遵守它们所在目录的权限.可以更改其所有者,组及其权限.如果进程对创建套接字的目录没有写入和搜索(执行)权限,则创建新套接字将失败.连接到套接字对象需要读/写权限.此行为与许多忽略UNIX域套接字权限的BSD派生系统不同.便携式程序不应依赖此功能来提高安全性.
因此,如果要控制套接字上的权限,为了便于移植,您应该控制包含套接字的目录的权限.
归档时间: |
|
查看次数: |
15757 次 |
最近记录: |