如何更改linux套接字文件的权限?

我有一个程序,它创建一个套接字,然后我想更改套接文件的权限:
ret_val = chmod(filename,0777);

,但它不会改变,即使ret_val为0.如果我在常规文件上尝试相同的操作,它也可以.

有任何想法吗?

P.S:我以root身份运行程序,因此它拥有所需的所有权限.

解决方法

来自man 7 unix:

In the Linux implementation,sockets which are visible in the file system
honor the permissions of the directory they are in. Their owner,
group and their permissions can be changed. Creation of a new socket
will fail if the process does not have write and search (execute) permission on the directory the socket is created in. Connecting to the
socket object requires read/write permission. This behavior differs
from many BSD-derived systems which ignore permissions for UNIX domain
sockets. Portable programs should not rely on this feature for security.

因此,如果要控制套接字上的权限,为了便于移植,您应该控制包含套接字的目录的权限.

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...