ros2 rqt 错误:wslg/runtime-dir, 0777 instead of 0700 修复

ros2 rqt 错误:QStandardPaths: wrong permissions on runtime directory /wslg/runtime-dir, 0777 instead of 0700 修复

错误原因

  • WSLg 图形环境:该路径 /mnt/wslg/ 属于 Windows Subsystem for Linux (WSL) 的图形界面集成目录(WSLg)。
  • 权限问题:Qt 要求运行时目录权限为 0700(仅所有者可读写执行),但实际为 0777(所有人可读写执行),存在安全风险。

解决方案

1. 修改目录权限

管理员权限(sudo)执行以下命令,将目录权限改为 0700:

sudo chmod 0700 /mnt/wslg/runtime-dir

2. 确保目录所有者为当前用户

检查目录所有者是否为当前用户(非 root):

ls -ld /mnt/wslg/runtime-dir
# 预期输出:drwx------ 2 your_username root ... runtime-dir

若所有者为 root,需将所有权改为当前用户:

sudo chown -R $USER:$USER /mnt/wslg/runtime-dir

3. 重启 WSL(可选)

若上述操作无效,尝试重启 WSL 使权限生效:

wsl --shutdown

为什么会出现这个问题?

  • WSLg 自动挂载:WSLg 运行时目录由系统自动创建,偶尔因 Windows 文件共享机制权限继承 导致权限错误。
  • Qt 安全策略:Qt 为避免敏感数据泄露,强制要求运行时目录权限为 0700。

验证结果

重新运行 rqt 或相关 ROS 2 图形工具(如 rqt_graph),若警告消失,则问题解决。

额外建议(WSL 用户)

  • 避免手动修改 /mnt/wslg/ 下的系统目录权限,除非明确知道操作后果。
  • 若问题频繁出现,可创建脚本在启动时自动修复权限:

  • echo 'sudo chmod 0700 /mnt/wslg/runtime-dir' >> ~/.bashrc
原文链接:,转发请注明来源!