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

Discord持续填充syslog且存在ptrace读取请求被拦截问题,求无隐私泄露的解决方案及相关配置疑问

Discord持续填充syslog且存在ptrace读取请求被拦截问题,求无隐私泄露的解决方案及相关配置疑问

我之前也碰到过这个烦人的问题——Discord哪怕关掉了游戏状态推送功能,还是会不停地发起ptrace读取请求,被AppArmor/Snap拦截后疯狂往syslog里写日志,既占磁盘空间又看着闹心。下面针对你的几个疑问逐一解答:

一、旧AppArmor规则修改失效的原因

你提到的手动修改/var/lib/snapd/apparmor/profiles/snap.discord.discord添加deny capability sys_ptrace,的方法现在失效,主要是因为Snap的AppArmor配置是动态生成并维护的,每次Discord Snap更新或者Snapd升级时,这个文件都会被自动覆盖,手动修改的内容会丢失。而且从2023年中开始,Snap的权限机制做了调整,这类直接修改生成文件的方式已经不再生效了。

二、无隐私泄露的解决方案(不授予system-observe权限)

1. 临时全局屏蔽AppArmor拒绝日志(谨慎使用)

你看到的echo -n quiet_denied > /sys/module/apparmor/parameters/audit命令确实能临时生效,它会让AppArmor停止记录所有程序的权限拒绝日志,直到系统重启。但要注意:这是全局设置,会屏蔽所有程序的拒绝日志,如果你之后需要排查其他权限问题,可能会找不到关键日志信息,所以只适合临时应急。

2. 针对Discord单独屏蔽ptrace拒绝日志(推荐)

如果不想全局屏蔽,只想解决Discord的日志填充问题,可以通过auditd来过滤特定的日志事件,只忽略Discord的ptrace相关拒绝记录:

  • 临时生效:执行以下命令(64位系统):
    sudo auditctl -a never,exit -F comm=Discord -F arch=b64 -S ptrace
    
    32位系统把arch=b64改成arch=b32即可。
  • 永久生效:创建一个audit规则文件,让设置在开机后自动加载:
    1. 创建规则文件:
      sudo nano /etc/audit/rules.d/discord-ptrace.rules
      
    2. 在文件中添加以下内容(对应你的系统架构):
      -a never,exit -F comm=Discord -F arch=b64 -S ptrace
      
    3. 保存后重启auditd服务:
      sudo systemctl restart auditd
      
    这样就只会过滤Discord的ptrace调用拒绝日志,不影响其他程序的日志记录,也不会泄露隐私。

三、关于开机保留设置的疑问

你问把echo -n quiet_denied > /sys/module/apparmor/parameters/audit加到.bashrc里行不行?答案是不行。因为.bashrc只有在你打开终端会话时才会执行,系统开机时没有终端会话,这个命令不会被触发,所以开机后设置会失效。

如果一定要全局开启quiet_denied并永久生效,正确的做法是用systemd服务来实现:

  1. 创建systemd服务文件:
    sudo nano /etc/systemd/system/apparmor-quiet-denied.service
    
  2. 写入以下内容:
    [Unit]
    Description=Set AppArmor quiet_denied parameter
    After=sysinit.target
    
    [Service]
    Type=oneshot
    ExecStart=/bin/sh -c 'echo -n quiet_denied > /sys/module/apparmor/parameters/audit'
    
    [Install]
    WantedBy=multi-user.target
    
  3. 启用并启动服务:
    sudo systemctl enable --now apparmor-quiet-denied.service
    
    这样系统开机时就会自动设置quiet_denied参数了。

四、关于quiet_denied是否为官方计划功能的疑问

之前社区确实讨论过给Snap或AppArmor添加针对单个程序屏蔽权限拒绝日志的细粒度功能,但截至目前(2024年),这个功能还没有正式落地。你提到的quiet_denied是AppArmor的全局参数,并非针对单个程序的开关,所以它并不是当时讨论的针对性解决方案。如果想要针对Discord单独处理,还是推荐上面提到的auditd过滤方法。

备注:内容来源于stack exchange,提问作者Ender

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 09:09:32