Я использую Slurm
. Я хочу, чтобы пользователи имели доступ только к своему собственному каталогу /home/
(или каталогу, в котором они выполняли свою работу), пакетам ubuntu, установленным пользователем sudo
, и пользователю двоичных файлов /bin
, например: ls
, cat
, rm
и т. Д.
Я не хочу, чтобы каждый пользователь имел read/write
доступ к файлам других пользователей и важным файлам, таким как /etc/passwd
.
Я заметил, что когда любой slurm-job
запускается под новым пользователем, он может read
все файлы в корневом каталоге (/
), например /etc/passwd
.
С начальной точки Можно ли заставить SLURM иметь доступ только к запущенной папке задания и не изменять какой-либо другой файл? ответ, рекомендуется использовать chroot
:
Если вы хотите убедиться, что ваша работа не имеет возможности записи вне определенного каталога, вы можете использовать команду chroot
в вашем скрипте отправки работы, но это кажется немного странным и менее простым в управлениичем разрешения UNIX.
Системный вызов chroot()
изменяет корневой каталог процесса на каталог, указанный путем pathname
Возможно ли запуститьпользовательские задания в среде chroot (chroot()-jailed
) с использованием Slurm
?
В качестве альтернативного решения я контролировал доступ к файлам через разрешения UNIX, где задание может тольконапишите, где подаете заявкуr имеет разрешение на запись, см. slurm: как отправить работу под другим пользователем и запретить чтение файлов других пользователей?