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

Apache Guacamole(guacd)会话录制文件权限异常排查求助

问题原因及解决方案

根本原因:guacd服务进程的umask设置过严

你手动用sudo -u guacd创建文件时,用的是guacd用户登录shell的默认umask,这个umask会配合父目录的2750权限,生成符合预期的权限(比如文件夹750、文件640)。但guacd作为后台服务启动时,它的umask被设置成了更严格的值(大概率是0077),直接导致:

  • 生成的会话文件夹:父目录的SGID属性确实让子文件夹继承了tomcat组,但umask 0077会把组权限的执行位抹掉,最终权限变成drwxr-S---(大写S表示SGID生效但组无执行权限)
  • 录制文件:直接被限制为rw-------,完全关闭了组的读权限,Tomcat自然读不到

验证步骤

先确认guacd进程的umask是不是0077:

# 获取guacd的进程ID
PID=$(pgrep guacd)
# 查看进程的umask值
cat /proc/$PID/status | grep Umask

如果输出是Umask: 0077,就坐实了这个问题。

再对比手动登录guacd用户的umask:

sudo -u guacd bash -c 'umask'

正常应该是0022或0002,这也是手动创建权限正常的原因。

修复方法

修改guacd的服务配置,调整umask:

  1. 找到guacd的systemd服务文件,一般在/lib/systemd/system/guacd.service或者/etc/systemd/system/guacd.service
  2. 打开文件,在[Service]区块里添加一行:
    UMask=0002
    
  3. 重新加载配置并重启服务:
    systemctl daemon-reload
    systemctl restart guacd
    

之后新创建的会话文件夹会变成drwxr-s---(小写s表示SGID和组执行权限都生效),录制文件权限会是rw-r-----,Tomcat就能正常读取录制文件,在网页端显示历史记录了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 23:43:13