基于以下线程;我正在尝试在另一个用户下发送工作。
我以main_user
, 和 slurm 作业的身份登录,main_user
这样做rm -rf /home/main_user
是非常危险的。
为了防止这种情况,我想在main_user
's 目录下的另一个用户的权限下运行作业。我认为,如果我能够设法通过 new created 提交作业user
,则该用户无权更改我的任何文件,期望用户正在运行他的作业的文件夹。
创建新用户:
$ sudo useradd -m newuser -d /home/newuser
$ sacctmgr add account newuser --immediate
$ sacctmgr create user newuser defaultaccount=newuser adminlevel=[None] --immediate
Approach_1:在 main_user 的目录下以 newUser 身份运行:
$ cd pathToRunMyJob
$ sudo chown -R newuser:newuser .
$ id -u newuser
1004
$ sbatch --uid=1004 run.sh
Approach_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)
更新:
我试图通过使用@Dmitri Chubarov 的评论在另一个用户下提交工作:sudo su - newuser ; sbatch run.sh
这似乎是解决方案。在我这样做sudo su - newuser
之后sbatch run.sh
,它会阻止newuser
源代码更改其他用户的文件夹。
另外,我只是想防止用户不访问任何其他用户存储的任何重要数据。chmod go-rwx /home/*
或chmod 700 ~/*
使其他用户的文件夹无法访问;这可能是一个有用的解决方案吗?