Назад | Перейти на главную страницу

Запуск корневого скрипта при ssh'ing от имени конкретного пользователя, но не при стандартном входе в систему

Я бы хотел сделать следующее:

Если я вхожу в систему как пользователь ABC через экран входа в систему, ничего не делать. Однако, если я использую ssh как ABC, я хочу запустить сценарий root без запроса пароля root и без необходимости хранить пароль root где-нибудь на диске.

Мотивация к этому изложена в статье в Linux: ограничение исходящих сообщений для отдельных приложений . В основном, вдохновленный статьей https://unix.stackexchange.com/questions/21650/how-to-restrict-internet-access-for-a-particular-user-on-the-lan-using-iptables , я хочу сделать следующее:

1) Войдите в систему как пользователь EFG и используйте firefox для доступа в Интернет.

2) ssh в ABC.

3) После ssh'ing в ABC я хочу запустить сценарий, который имитирует «sudo iptables -t mangle -A OUTPUT -o eth0 -m owner --uid-owner 1234 -j DROP», где 1234 - это UID пользователя. ABC

4) Затем начните использовать под терминалом ssh'ed для ABC все приложения, к которым я не хочу иметь доступ в Интернет, пока я все еще вошел в систему как пользователь EFG, что позволяет мне выходить в Интернет как EFG.

Примечание. Я попытался возиться с файлом / etc / network / interfaces, однако у меня были проблемы с тем, что компьютер не мог нормально запуститься, если компьютер не был подключен к сети.

Спасибо

Самый простой способ - использовать принудительная команда против ключа SSH.

Создайте SSH-ключ для пользователя с ssh-keygen и добавьте открытый ключ в ~/.ssh/authorized_keys для пользователя ABC, добавив к нему префикс command="/some/script"

Скрипт может содержать sudo команды, которые вы хотите запустить, а затем exec оболочку при необходимости.