是否可以使用Slurm在chroot环境中运行用户的作业

时间:2019-11-04 12:27:42

标签: slurm chroot

我正在使用Slurm。我希望用户仅访问自己的/home/目录(或执行工作的目录),sudo用户安装的ubuntu软件包以及二进制文件用户/bin,例如:lscatrm等。

我不希望每个用户都可以read/write访问其他用户的文件和重要文件,例如/etc/passwd

我观察到,当任何slurm-job在新用户下运行时,它可以read在根(/)目录下的所有文件,例如/etc/passwd


从答案Is it possible to force SLURM to have access to only job's running folder and not alter any other file?的起点开始,建议使用chroot

  

如果您想确保您的工作没有办法在   特定目录,您可以在工作中使用chroot命令   提交脚本,但似乎有点奇怪并且较不易于管理   UNIX权限。


  

chroot()系统调用将进程的根目录更改为   路径名指定的目录

是否可以使用chroot()-jailed在chroot环境(Slurm)中运行用户的作业?


作为一种替代解决方案,我控制了文件访问是通过UNIX权限进行的,其中作业只能在提交用户具有写入权限的地方进行写入,请参阅: slurm: How to submit a job under another user and prevent to read other users' files?

2 个答案:

答案 0 :(得分:1)

  

我不希望每个用户都对其他用户的文件和重要文件(例​​如/ etc / passwd)具有任何读/写访问权限。

通常允许用户阅读/etc/passwd,这对于许多操作都是必要的。如今,最初存储在/etc/passwd中的敏感信息(例如密码哈希)现在已存储在所有Linux发行版的/etc/shadown中。

  

我观察到,当在新用户下运行任何slurm-job时,它可以读取根(/)目录下的所有文件,例如/ etc / passwd。

同样,普通用户能够读取/中的文件是正常的;它使他们能够访问已安装的软件,查看有关其过程的信息等。

/root应该只能读取root

对于其他用户的文件,它们通常位于/home中,因此请确保/home中的子目录为700归其各自用户所有。 / p>

/etc中的文件也可能包含敏感信息,但是程序包管理器通常会确保对此文件设置了适当的权限。

如果您担心隐私,还应该配置Slurm以禁用节点共享并保持会计信息私有。查看更多信息here

答案 1 :(得分:0)

您不必使用chroot即可实现所需的功能,因为所需的功能是正常的行为。因此,我认为您的设置有问题。默认情况下,运行SlurmdUser守护程序的配置参数slurmdroot,但即使在这种情况下,也应拥有由slurmd开始的作业本身由提交作业的用户。然后,用户只能对具有适当权限的资源(例如其自己的home目录)进行读写访问。

如上所述,我实际上没有在Ubuntun上使用Slurm的任何经验,因此那里确实确实有些问题。