在 Debian(以及大多数 Linux 发行版)里,“context 问题”通常不是单一概念,而是指和安全上下文 / 运行环境上下文有关的一类问题,最常见于以下三种场景:
Debian 默认使用 AppArmor,不是 SELinux。
常见症状
apparmor="DENIED"排查方法
sudo dmesg | grep apparmor
sudo journalctl -xe | grep apparmor
查看某程序 profile 状态
sudo aa-status
临时关闭(仅调试)
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx
重新加载
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.nginx
getenforce
sestatus
常见调试:
ausearch -m AVC -ts recent
sealert -a /var/log/audit/audit.log
修复上下文:
restorecon -Rv /path
查看服务环境:
systemctl show nginx | grep Environment
编辑:
sudo systemctl edit nginx
示例:
[Service]
Environment=FOO=bar
User=Group=WorkingDirectory=调试:
systemctl status xxx
journalctl -u xxx
常见于:
sudo 后 GUI 程序打不开典型错误
Failed to connect to session bus
No protocol specified
调试
echo $DISPLAY
echo $DBUS_SESSION_BUS_ADDRESS
正确做法(不要 sudo 直接跑 GUI)
xhost +local:
sudo -E gui_program
或:
pkexec gui_program
先看日志
journalctl -xe
dmesg
/var/log/syslog
确认你指的是哪种 context
最小化复现
“我是在 ______ 场景下遇到 context 问题”
我可以给你精确到命令级的调试步骤(比如 nginx / docker / ssh / cron / desktop)。