Можно ли занести в черный список команды для использования через SSH?

Я обновил /etc/security/limits.conf , как показано ниже

Это читается в pam_limits.so , поэтому он действует только для всего, что проходит через PAM, как в логине пользователя.

обновлен /etc/sysctl.conf

Вероятно, это читается некоторыми сценариями загрузки, поэтому изменения вступают в силу только после перезагрузки ... (Там systemd-sysctl.service и скрипт старого стиля /etc/init.d/procps в моем Debian.)

Дело в том, что ни один из этих файлов не читается мгновенно, и изменения в ulimit никогда не применяются к запущенным процессам.

Как я могу увеличить значение «Макс. Количество открытых файлов» для этого процесса / приложения ruby?

Узнать, что запускает его, изменить там ulimit и перезапустить процесс. Если вы запустите его из командной строки, измените ограничения на оболочку и перезапустите ее, если вы запустите ее из init / systemd / something, вам может потребоваться найти правильную конфигурацию.

1
20.09.2017, 22:07
2 ответа

Добавьте это в свой ~/.bashrc, это гарантирует, что только локальный ttyсможет запускать это программное обеспечение.

Когда пользователь входит в систему через ssh, сервер добавляет aliasк команде, которая просто выводит «Ограничено. Может выполняться только локально».

whichtty=$( ps hotty $$ | grep pts )

if [ $? -eq 0 ]; then
    alias <software_name>='echo Restricted. Can only be run locally.'
else
    echo 
fi

Сеанс SSH будет осуществляться на псевдо-подчиненном терминале (pts), как показано в столбце TTY, но не все соединения ptsявляются сеансами SSH. Например, программы, которые создают терминальное устройство псевдо -, такое как xtermили screen, будут отображаться как pts. Таким образом, недостатком этого скрипта является то, что вы не можете запустить это программное обеспечение из своего локального xtermили screen.

Вам придется запускать программное обеспечение из панели запуска.

0
27.01.2020, 23:44

Вариация на тему ответа Хантера С.Томпсона:

В файле запуска оболочки:

if [ -n "$SSH_CLIENT" ]; then
   alias matlab='echo "restricted to local users only, sorry"'
   alias firefox='echo "restricted to local users only, sorry"'
fi

Это не мешает никому обходить эти псевдонимы, поэтому вместо этого можно создать сценарий оболочки для каждого ограниченного программного обеспечения.

Например:/usr/local/bin/matlab:

#!/bin/sh

if [ -n "$SSH_CLIENT" ]; then
   echo 'restricted to local users only, sorry' >&2
   exit 1
fi

exec /real/path/to/matlab

Это не мешает пользователю сбрасывать свою SSH_CLIENTпеременную окружения или выполнять настоящую matlabпрограмму напрямую.

1
27.01.2020, 23:44

Теги

Похожие вопросы