如果套接字的文件是只读的,是否可以使用它?
例如,如果一个程序需要使用套接字与守护进程通信,但不允许删除该套接字。
因为,比如说,它无法重新创建它,将文件设置为只读会起作用吗?这适用于 Linux 和 BSD 变体。
答案1
使文件只读有效吗?
是什么让您认为无法删除只读文件?删除文件的能力由对文件所在目录的写访问权限[*] 控制,而不是由文件权限控制。要看到这一点,请执行以下操作:
touch a
chmod 0000 a
rm a
虽然rm
可能会提示删除写保护的文件,但该操作是允许的。
因此,您需要做的就是不要授予访问守护程序的程序对包含套接字文件的目录的写权限,而鲍勃是您的叔叔(就删除套接字文件而言)。
[*] - 请注意,粘性位使事情变得有点复杂,这可能导致检查文件的所有者,但不是文件的权限。