Это идея безопасности. Наши сотрудники должны иметь доступ к некоторым командам на сервере linux, но не ко всем. Они должны, например, имеют возможность доступа к файлу журнала (less logfile
) или запускать разные команды (shutdown.sh
/run.sh
).
Фоновая информация:
Все сотрудники получают доступ к серверу с тем же именем пользователя: наш продукт работает с "обычными" разрешениями пользователя, не требуется "установка". Просто разархивируйте его в своем каталоге пользователя и запустите его. Мы управляем несколькими серверами, где наше приложение "установлено". На каждой машине есть пользователь johndoe
. Наши сотрудники иногда нуждаются в доступе к приложению в командной строке для доступа и проверки файлов журнала или для перезапуска приложения вручную. Только некоторые люди должны иметь полный доступ к командной строке.
Мы используем аутентификацию ppk на сервере.
Было бы здорово, если employee1 может получить доступ только к logfile, а employee2 также может выполнять X и т.д.
Решение:
В качестве решения я буду использовать параметр command
, как указано в принятом ответе. Я создам свою небольшую оболочку script, которая будет единственным файлом, который может быть выполнен для некоторых сотрудников. script предложит несколько команд, которые могут быть выполнены, но нет других. Я буду использовать следующие параметры в authorized_keys
, как указано здесь:
command="/bin/myscript.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw= [email protected]
Это достаточно для нас. Спасибо, сообщество!