You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何防止SLURM通过sbatch、srun提交的任务写入/home目录?

SLURM作业禁止写入/home目录相关问题解答

SLURM原生能力说明

SLURM作为集群调度器本身不提供文件系统操作的拦截、管控或监控能力,它的核心职能是资源分配、作业调度和生命周期管理,不会介入作业进程的系统调用层面的操作,所以原生无法实现禁止作业写入/home目录的需求,也没有内置的这类IO操作的监控功能。

基于SLURM周边配置的可选实现(局限性较高)

  • 可以配置SubmitPlugins提交钩子,在作业提交时扫描作业脚本的明文内容,拦截显式写/home目录的命令,但这种方案无法识别变量拼接路径、二进制程序内部硬编码路径等场景,误判和漏判概率很高。
  • 可以通过SLURM配置强制作业默认工作目录指向临时/scratch路径,但用户仍可在作业脚本或程序中主动切换到/home目录执行写入,无法完全禁止。

成熟的替代解决方案

1. 文件系统层面管控(最推荐,实现简单可靠性高)

  • 计算节点侧将/home目录设置为只读挂载:仅在登录节点开放/home的读写权限,所有计算节点的/home统一用只读方式挂载,无论作业是通过sbatch还是srun提交,都无法写入/home目录,用户仅能写入专属的scratch目录或者集群共享存储路径。
  • 配置ACL访问控制规则:如果不能直接设置只读挂载,可以用setfacl命令给slurm作业所属的用户组配置/home目录的只读权限,示例命令:setfacl -R -m g:slurm:r-x /home/*,所有slurmd启动的作业进程都会继承该组权限,无法写入/home。

2. 系统安全模块管控(灵活性更高)

配置AppArmor或SELinux策略,给slurmd启动的所有作业进程定义安全规则,明确禁止对/home目录的写入权限,支持更细粒度的规则配置,比如允许读取/home下的配置文件、仅禁止写入操作,或者仅禁止写入特定用户的/home子目录。

3. 监控审计方案(仅需监控时使用)

  • 部署auditd审计工具,配置规则监控所有对/home目录的写入系统调用,过滤父进程为slurmd、或者UID属于作业用户的操作,留存完整的操作日志,也可以配置告警规则,检测到违规写入时自动暂停对应SLURM作业。
  • 用inotify/fanotify实时监控/home目录的写入事件,过滤SLURM作业相关进程的操作,实现实时监控和告警。

内容的提问来源于stack exchange,提问作者ajthealchemist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:24:04