在 Debian 里,“context”这个词可能有几种不同含义,常见的包括:
下面我分别说明最常见的几种配置方式。
Debian 默认 不启用 SELinux(默认用 AppArmor)。
ls -Z
ps -Z
chcon -t httpd_sys_content_t /var/www/html/index.html
semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
restorecon -Rv /var/www/html
⚠️ Debian 上若要用 SELinux,需要单独安装并启用,配置较复杂。
Debian 默认使用 AppArmor。
aa-status
/etc/apparmor.d/usr.sbin.nginx
示例:
/usr/sbin/nginx {
#include <abstractions/base>
/var/www/** r,
}
systemctl reload apparmor
如果你想配置 服务的运行 context(用户、环境、目录等):
[Service]
User=appuser
Group=appgroup
WorkingDirectory=/opt/myapp
Environment=ENV=production
ExecStart=/opt/myapp/bin/start.sh
systemctl daemon-reload
systemctl start myapp
User=Group=Environment=WorkingDirectory=Nice=LimitNOFILE=~/.profile
~/.bashrc
/etc/environment
示例:
export APP_ENV=prod
/etc/pam.d/common-session
chroot /srv/chroot /bin/bash
docker run --user 1000:1000 \
--workdir /app \
-e ENV=prod \
myimage
你具体是指哪一种 context?例如:
我可以给你更精确的 Debian 配置示例。