You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非root应用无法在/run创建UNIX socket,用户套接字应存于何处?

关于非root用户创建UNIX套接字的路径问题

/run目录的权限说明

/run(旧版为/var/run)并非仅适用于systemd/init启动的服务,但它的默认权限为root:root且仅开放所有者的读写执行权限,普通用户无写入权限,这就是你遇到错误码13(权限拒绝)的原因。

用户级应用的UNIX套接字推荐位置

根据FHS及现代Linux规范,推荐以下几种路径:

  • 用户专属运行时目录:使用环境变量$XDG_RUNTIME_DIR对应的路径(通常为/run/user/<你的UID>/)。该目录由systemd在用户登录时自动创建,权限为当前用户独有,且会在用户注销时自动清理,是用户级应用存放套接字的首选规范路径。
  • 多用户共享场景:如果需要多个用户访问该套接字,可请求root在/var/run下创建专属子目录(比如/var/run/myapp/),并将目录权限设置为应用所属用户或组可读写。
  • 临时/测试场景:也可以放在用户家目录下的自定义目录(如~/tmp/),但这种方式不符合规范,且不会自动清理临时文件,仅适合本地测试使用。

内容的提问来源于stack exchange,提问作者Nidhoegger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 10:40:46