Запретить обычным пользователям запускать код в кластере вне системы 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. Удачи