你提到的 “Debian context” 可能有几种不同含义,下面我按最常见的情况分别说明,你可以看看哪一种符合你的场景。
Debian 默认使用 AppArmor,而不是 SELinux(但也可以启用 SELinux)。
ps -Z
ls -Z /path
如果是 AppArmor:
aa-status
sudo aa-logprof
查看拒绝日志:
sudo journalctl | grep apparmor
sudo dmesg | grep apparmor
sudo aa-complain /etc/apparmor.d/usr.sbin.nginx
getenforce
setenforce 0
ausearch -m avc -ts recent
常用于调试服务起不来的问题。
systemctl show nginx
User=WorkingDirectory=Environment=ExecStart=sudo -u www-data /usr/sbin/nginx -t
journalctl -u nginx -xe
例如 cron / ssh 中程序找不到显示器。
echo $DISPLAY
echo $DBUS_SESSION_BUS_ADDRESS
env | grep -i dbus
例如 LXC 容器权限问题:
lxc config show container
lxc info container
Docker:
docker inspect container_id
“调试 Debian context” 的关键是先确定 context 类型:
- 安全策略(AppArmor / SELinux)
- 系统服务(systemd)
- 用户会话(D-Bus / X11)
- 容器运行环境
如果你能补充一句:
“我在做什么操作时遇到了 context 相关的问题?”
我可以给你更精确的调试步骤。