是否可以使用 Slurm 在 chroot 环境中 运行 用户的工作
Is it possible to run users' jobs in chroot environment using Slurm
我正在使用 Slurm
。我希望用户只能访问他们自己的 /home/
目录(或他们执行工作的目录)、ubuntu 由 sudo
用户安装的软件包和二进制文件用户 /bin
,例如:ls
、cat
、rm
等
我不希望每个用户都read/write
访问其他用户的文件和重要文件,例如/etc/passwd
。
我观察到当一个新用户下的任何slurm-job
运行时,它可以read
root (/
)目录下的所有文件如/etc/passwd
.
从的答案出发,已经推荐使用chroot
:
If you want to make sure your job has no way to write outside of a
specific directory, you can use the chroot
command in your job
submission script, but that seems a bit odd and less easy to manage
than UNIX permissions.
The chroot()
system call changes the process’s root directory to the
directory specified by pathname
是否可以使用 Slurm
在 chroot 环境 (chroot()-jailed
) 中 运行 用户的作业?
作为替代解决方案,我通过UNIX权限控制文件访问,其中作业只能在提交用户有写入权限的地方写入,请参见:
您不必使用 chroot
来实现您想要的,因为您想要的是正常行为。因此,我认为您的设置有问题。运行 slurmd
守护程序的配置参数 SlurmdUser
默认为 root
,但即使在那种情况下,由 slurmd
启动的作业本身也应该拥有由提交作业的用户。然后用户只能对具有适当权限的资源进行读写访问,例如他们自己的 home
目录。
综上所述,其实我并没有在 Ubuntun 上使用 Slurm 的经验,所以这里可能确实有些问题。
I do not want each user to have any read/write access to the other users' files and important files such as /etc/passwd.
允许用户阅读是正常的/etc/passwd
,很多操作都是必须的。密码哈希等敏感信息最初存储在 /etc/passwd
中,如今在所有 Linux 发行版中都存储在 /etc/shadown
中。
I observe that when any slurm-job runs under a new user, it can read all files under the root (/) directory such as /etc/passwd.
同样,普通用户能够读取 /
中的文件是正常的;它使他们能够访问已安装的软件、查看有关其进程的信息等。
只有 /root
应该只能被 root
读取。
至于其他用户的文件,它们通常位于 /home
中,因此请确保 /home
中的子目录 700
由其各自的用户拥有.
/etc
中的文件也可能包含敏感信息,但包管理器通常会确保对这些文件设置适当的权限。
如果您关心隐私,您还应该配置 Slurm 以禁用节点共享并保持记帐信息的私密性。查看更多信息 here。
我正在使用 Slurm
。我希望用户只能访问他们自己的 /home/
目录(或他们执行工作的目录)、ubuntu 由 sudo
用户安装的软件包和二进制文件用户 /bin
,例如:ls
、cat
、rm
等
我不希望每个用户都read/write
访问其他用户的文件和重要文件,例如/etc/passwd
。
我观察到当一个新用户下的任何slurm-job
运行时,它可以read
root (/
)目录下的所有文件如/etc/passwd
.
从chroot
:
If you want to make sure your job has no way to write outside of a specific directory, you can use the
chroot
command in your job submission script, but that seems a bit odd and less easy to manage than UNIX permissions.
The
chroot()
system call changes the process’s root directory to the directory specified by pathname
是否可以使用 Slurm
在 chroot 环境 (chroot()-jailed
) 中 运行 用户的作业?
作为替代解决方案,我通过UNIX权限控制文件访问,其中作业只能在提交用户有写入权限的地方写入,请参见:
您不必使用 chroot
来实现您想要的,因为您想要的是正常行为。因此,我认为您的设置有问题。运行 slurmd
守护程序的配置参数 SlurmdUser
默认为 root
,但即使在那种情况下,由 slurmd
启动的作业本身也应该拥有由提交作业的用户。然后用户只能对具有适当权限的资源进行读写访问,例如他们自己的 home
目录。
综上所述,其实我并没有在 Ubuntun 上使用 Slurm 的经验,所以这里可能确实有些问题。
I do not want each user to have any read/write access to the other users' files and important files such as /etc/passwd.
允许用户阅读是正常的/etc/passwd
,很多操作都是必须的。密码哈希等敏感信息最初存储在 /etc/passwd
中,如今在所有 Linux 发行版中都存储在 /etc/shadown
中。
I observe that when any slurm-job runs under a new user, it can read all files under the root (/) directory such as /etc/passwd.
同样,普通用户能够读取 /
中的文件是正常的;它使他们能够访问已安装的软件、查看有关其进程的信息等。
只有 /root
应该只能被 root
读取。
至于其他用户的文件,它们通常位于 /home
中,因此请确保 /home
中的子目录 700
由其各自的用户拥有.
/etc
中的文件也可能包含敏感信息,但包管理器通常会确保对这些文件设置适当的权限。
如果您关心隐私,您还应该配置 Slurm 以禁用节点共享并保持记帐信息的私密性。查看更多信息 here。