Debian Context 权限问题处理指南
一 识别问题类型
ls -l /pathps -eZ | grep <进程名>(若输出包含“?”或异常域,多半是 SELinux/AppArmor 限制)sestatus、getenforcesudo aa-statussudo ausearch -m avc -ts recent(SELinux 拒绝)或 sudo journalctl -u apparmor(AppArmor 拒绝)二 传统 DAC 权限修复
sudo <command>sudo chown user:group /pathsudo chmod 755 /path(目录常用 755,文件常用 644)sudo usermod -aG sudo <username>(之后需重新登录生效)su - 然后输入 root 密码(操作完成用 exit 退出)三 SELinux 上下文修复
ls -Z /pathsudo chcon -t <type> /path(如:httpd_sys_content_t)sudo semanage fcontext -a -t <type> "/path(/.*)?"sudo restorecon -Rv /pathsudo setenforce 1(Enforcing),getenforce 查看;排障时可设为 Permissive 观察sudo semodule -l(列模块)、sudo semodule -i <module.pp>(装载)sudo ausearch -m avc -ts recent | audit2allow -M <mymodule>,然后 sudo semodule -i <mymodule>.ppsudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
sudo restorecon -Rv /var/www/html
semanage 不可用,安装 policycoreutils-python-utils 后再执行。以上命令仅对启用 SELinux 的系统有效。四 AppArmor 上下文修复
sudo aa-statussudo nano /etc/apparmor.d/usr.sbin.<服务名>(为具体守护进程编写/调整规则)sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.<服务名>(重新加载),sudo apparmor_parser -R ...(卸载)sudo aa-enforce /etc/apparmor.d/usr.sbin.<服务名>(强制模式),sudo aa-complain ...(投诉/仅告警模式)aa-complain 降低阻断强度,观察 journalctl -u apparmor 的拒绝日志,再回到 aa-enforce 并细化规则。五 安全加固与最佳实践
su - 切换sudo sed -i 's/^#*PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config && sudo systemctl reload sshsudo apt update && sudo apt upgrade -ysudo apt install unattended-upgrades -y && sudo dpkg-reconfigure unattended-upgrades