slurm:如何在其他用户下提交作业并阻止阅读其他用户的文件?

时间:2018-05-10 07:14:25

标签: slurm sbatch

基于以下thread;我正在尝试在另一个用户下发送一份工作。

我以main_user身份登录,并且main_user通过rm -rf /home/main_user提交slurm职位,main_user非常危险。

为了防止这种情况,我想在user目录下的其他用户的许可下运行作业。我认为,如果我能够通过新创建的$ sudo useradd -m newuser -d /home/newuser $ sacctmgr add account newuser --immediate $ sacctmgr create user newuser defaultaccount=newuser adminlevel=[None] --immediate 设法提交作业,该用户无权更改我的任何文件,则期望用户正在运行其作业的文件夹。

创建新用户:

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

Approach_1:在main_user目录下以newUser身份运行:

home

Approach_2:$ 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)

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

sudo su - newuser ; sbatch run.sh

更新

我试图通过使用@Dmitri Chubarov'评论来提交另一位用户的作业:sudo su - newuser

这似乎是解决方案。在我sbatch run.sh然后newuser之后,它会阻止chmod go-rwx /home/*的源代码更改其他用户的文件夹。

另外,我只是想阻止用户不访问任何其他用户存储的任何重要数据。 chmod 700 ~/*scp: /tmp: not a regular file 无法访问其他用户的文件夹;这可能是一个有用的解决方案吗?

2 个答案:

答案 0 :(得分:3)

  

但是在我执行sbatch run.sh之后,我收到以下消息:已提交   批量工作***;但提交的工作并未出现在squeue和the   工作没有在Slurm上启动。

通常,这表示计算节点上不知道newuser。您还必须在所有计算节点上运行useradd命令。但是,从Slurm日志文件中可以清楚地看出这一点。

  

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

是的,chmod go-rwx /home/*将是您的最佳选择。

答案 1 :(得分:0)

我结合了podman --help@damienfrancois的答案:

我创建新用户的方式:

user.sh

@Dmitri Chubarov

后来我应用了@Dmitri Chubarov的建议:

  

您可以直接以#!/bin/bash NEWUSER ="user" BASEDIR="/var/users/" sudo useradd -d $BASEDIR/$NEWUSER -m $NEWUSER sudo mkdir -p $BASEDIR/$NEWUSER/cache echo $USERADDRESS / $NEWUSER 'is added as user.' sudo chmod 700 $BASEDIR/$NEWUSER # Block others and people in the same group to do read/write/execute sudo setfacl -R -m user:$NEWUSER:rwx $BASEDIR/$NEWUSER #Give Read/Write/Execute access to USER on the give folder. sudo setfacl -R -m user:$SLURMUSER:rwx $BASEDIR/$NEWUSER #Give Read/Write/Execute access to root_slurmuser on the give folder. # Add user to Slurm sacctmgr add account $NEWUSER --immediate sacctmgr create user $NEWUSER defaultaccount=$NEWUSER adminlevel=[None] --immediate 的身份提交工作吗,例如   newuser

我已以sudo su - newuser ; sbatch run.sh的身份提交了工作

$NEWUSER