是否可以强制 SLURM 仅访问作业的 运行 文件夹而不更改任何其他文件?

Is it possible to force SLURM to have access to only job's running folder and not alter any other file?

我观察到当我 运行 SLURM 作业时,它可以在其他文件夹路径上创建文件,也可以删除它们。他们可以通过 SLURM 工作访问其他人 folders/files 并对其进行更改,这似乎很危险。

$ sbatch run.sh

run.sh:

#!/bin/bash
#SBATCH -o slurm.out        # STDOUT
#SBATCH -e slurm.err        # STDERR

echo hello > /home/avatar/completed.txt
rm /home/avatar/completed.txt

[问] 是否可以强制 SLURM 只能访问其自己的 运行ning 文件夹而不能访问其他文件夹?

文件访问是通过 UNIX 权限控制的,因此作业只能在提交用户有写入权限的地方写入。大多数情况下,一个作业需要在不同的文件系统上读取和写入几个不同的目录(用于配置文件和结果的主 NFS,用于中间数据和输入数据的暂存并行文件系统等),因此 Slurm 不应限制作业在提交目录中。

如果你想确保你的作业无法写入特定目录之外,你可以在你的作业提交脚本中使用 chroot 命令,但这似乎有点奇怪而且不太容易管理比 UNIX 权限。