Запретить обычным пользователям запускать код в кластере вне системы pbs

В нашем кластере с установленной пакетной системой PBS (момент) мы хотим, чтобы все пользователи выполняли свои задания с помощью qsub, чтобы ресурсы ЦП могли хорошо управляться. Однако выяснилось, что пользователи нашего кластера по-прежнему могут напрямую запускать свои программы непосредственно в оболочке bash.

Я заметил, что некоторые другие кластерные системы запрещают пользователям запускать свои собственные двоичные файлы. их командная строка отличается от полной привилегированной командной строки (начиная с ~>)

qczhan2@barrine1:~>echo $0
-bash

В своей конфигурации пользователи могут запускать базовые команды, такие как ls, pwd, cp и cd, но когда usrs запускает свой собственный двоичный файл, система напоминает "разрешение не разрешено".

Мне просто интересно, как настроить систему таким образом?

Большое спасибо.

Обновить:? Я пытался:

(a) монтирование файловой системы с опцией noexec, но этот метод также не позволяет пользователю запускать свои двоичные файлы из pbs.

(б) использование bash с ограничениями, но этот метод даже не позволяет пользователю использовать команду "cd".

1 ответ

Проблема с управлением кластером заключается в том, что вы всегда найдете кого-то, кто хочет обмануть систему. Ответственность может иметь большое значение для изменения поведения. Возможно, вам придется рассмотреть вопрос об изменении приоритета в очереди или отмене доступа для проблемных пользователей.

Монтирование home как noexec кажется хорошей идеей, но это не удастся, если у вас нет централизованно управляемого набора установленных программ. Я предполагаю, что пользователи входят в узлы и выполняют команды в интерактивном режиме. В быстром поиске в Google обнаружен модуль Torque PAM, который может быть полезен для ограничения доступа к узлам для пользователей с заданиями, которые в данный момент находятся на этом узле. В этом случае они будут красть процессор у себя. Вы также можете запретить доступ ssh к вычислительным узлам из головного узла, но вам все равно потребуется разрешить ssh между узлами.

Если вы имеете дело с большой одиночной машиной или одним кластером образа системы, вы можете сделать что-то с ограничениями ЦП. Вам нужно будет назначить небольшой мягкий лимит и разумный жесткий лимит времени процессора. Затем необходимо изменить профиль bash в /etc, чтобы найти переменную среды PBS, установленную Torque, и увеличить мягкий предел пользователя, чтобы он соответствовал жесткому пределу. Конечно, пользователи могут увеличить свои мягкие ограничения и при этом обмануть систему.

Небольшая креативность в написании сценариев может иметь большое значение, но всегда полезно иметь набор политик, на которые следует указывать, когда пользователи жалуются. Если вы можете идентифицировать нарушающие процессы с помощью скрипта, вы всегда можете убить их или добавить их в работу cron. Удачи

Другие вопросы по тегам