在不允许写入/ var / run时,在哪里创buildAF_LOCAL / AF_UNIX套接字文件?

FSH认为套接字pid文件应该到/var/run但是,为了安全起见,只有root可以在这个位置创build文件和子目录。

一个常见的解决scheme是在/var/run为脚本创build一个子目录,然后用十个chmod命令创build一个子目录…但是当你不能访问root用户时该怎么办?

如果我没有root权限,我应该在哪里放置.socket(和一个.pid)?

在Arch Linux和(最新的)Debian等基于systemd的系统上,服务需要通过向系统添加一个tmpfiles.dconfiguration文件来告诉systemd他们想要一个在/run的目录。

默认情况下,这些文件存储在/usr/lib/tmpfiles.d ,尽pipe可以在/etc/tmpfiles.d中添加本地添加,这些文件会覆盖默认值。

tmpfiles.d工具可用于创build和清空目录,创build文件,符号链接,设备节点,套接字等等。

例如:

 # cat /usr/lib/tmpfiles.d/php-fpm.conf d /run/php-fpm 755 root root 

这指定创build一个目录/run/php-fpm ,模式为0755,由root和group root拥有。 该目录将在系统启动时或每当systemd-tmpfiles-setup服务重新启动时创build。 您也可以手动运行systemd-tmpfiles

还有很多其他的select。 检查tmpfiles.d文档的完整细节。