麒麟系统内置 KySEC(Kylin Security Enhancement),在“页面安全配置”开启时,会对脚本的执行、共享库加载、端口监听等做强制访问控制。典型现象:
chmod +x 过),执行却报 Permission denied;dmesg 里出现 kysec / denied 关键字;install_xxx.sh 这种部署脚本明明路径对、权限对,就是起不来。根因:KySEC 默认对非系统路径下的可执行文件标记为 不可信,即使传统 DAC 权限是 rwx 也不让跑。
解决思路有两条:临时关闭(运行时改状态,重启失效)和永久关闭(改 GRUB 启动参数,重启后仍然生效)。生产环境一般用永久方案;调试时先用临时方案验证是不是 KySEC 在拦。
适用于快速验证、临时跳过,不需要重启,但 重启后 KySEC 会重新生效。
# 查看当前状态
sudo getstatus
# 典型输出:
# mode: enforcing
# kysec: on
# 切换为 permissive(只告警不拦截)
sudo setstatus permissive
# 或者直接关掉
sudo setstatus disable
说明:
permissive:只记录日志不阻拦,适合排查“到底是不是 KySEC 拦的”。disable:完全关闭。重启后恢复默认(enforcing)。command not found,说明未装 kysec 工具包:sudo apt install kysec(或麒麟对应包名)。此方法通过修改 GRUB(GRand Unified Bootloader) 启动加载器的配置文件,在系统启动时就禁用安全机制。重启后仍然生效,是生产环境常用方案。
用文本编辑器(如 vim、pluma)以管理员权限打开 /etc/default/grub: