На основании следующих потоков ; Я пытаюсь отправить работу под другим пользователем.
Я вошел в систему как main_user
, и задания на сланцевую работу передаются через 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
Approach_1: Запуск от имени newUser в каталоге main_user:
$ 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 ~/*
делает папку других пользователей недоступной; это может быть полезным решением?