slurm:如何在另一个用户下提交作业并防止读取其他用户的文件?

2024-01-29

基于以下thread https://stackoverflow.com/q/44540590/2402577,我正在尝试向另一个用户发送作业。

我登录的身份是main_user,并且 slurm 作业通过以下方式提交main_user那可以做rm -rf /home/main_user那是相当危险的。

为了防止这种情况,我想在另一个用户的许可下运行一项作业main_user的目录。我认为如果我能够通过新创建的方式提交工作user,该用户无权更改我的任何文件,期望该用户正在运行其作业的文件夹。

创建新用户:

sudo useradd -m newuser -d /home/newuser
sacctmgr add account newuser --immediate
sacctmgr create user newuser  defaultaccount=newuser adminlevel=[None] --immediate

方法一:在main_user目录下以newUser身份运行:

$ cd pathToRunMyJob
$ sudo chown -R newuser:newuser .
$ id -u newuser
1004
$ sbatch  --uid=1004 run.sh

方法2:在新创建的用户文件夹中运行作业home目录:

$ cd /home/newuser
$ id -u newuser
1004
$ sbatch --uid=1004 run.sh

但现在我有以下待处理消息:

JOBID PARTITION   NAME     USER ST       TIME  NODES NODELIST(REASON)
  602     debug   run.sh   deneme PD     0:00      1 (launch failed requeued held)

Update:

我尝试通过使用@Dmitri Chubarov'评论在另一个用户下提交工作:

sudo su - newuser ; sbatch run.sh

这似乎是解决方案。我这样做之后sudo su - newuser then sbatch run.sh,它可以防止newuser的源代码来更改其他用户的文件夹。


另外,我只是想防止用户无法访问任何其他用户存储的任何重要数据。chmod go-rwx /home/* or chmod 700 ~/*使其他用户的文件夹无法访问;这可能是一个有用的解决方案吗?


但是在我执行 sbatch run.sh 后,我收到以下消息:已提交 批处理作业 *** ;但提交的作业没有显示在 squeue 上并且 作业不会在 Slurm 上启动。

通常,这表明newuser在计算节点上是未知的。你必须运行useradd也在所有计算节点上执行命令。但这从 Slurm 日志中应该可以清楚地看出。

另外,我只是想阻止用户访问任何重要数据 由任何其他用户存储。 chmod go-rwx /home/* 或 chmod 700 ~/* 使 其他用户的文件夹无法访问;这可能是一个有用的解决方案吗?

Yes, chmod go-rwx /home/*将是要走的路。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

slurm:如何在另一个用户下提交作业并防止读取其他用户的文件? 的相关文章

随机推荐