Я бы использовал ssh
и ограничил команды, которые могут выполняться этим пользователем. По крайней мере, так вы знаете, что соединение является безопасным.
Вы можете сделать это с помощью записи в / etc / ssh / sshd_config
:
Match User your_user
X11Forwarding no
AllowTcpForwarding no
ForceCommand your-command arg1 arg2
Это может сработать для вас, если вы через аргументы, может заставить your-command
использовать базу данных по вашему выбору. (В качестве альтернативы вы можете сделать это в файле authorized_keys на основе открытого ключа Server_User).
Я не знаю деталей PostgreSQL, но возможно, что в инструменте командной строки, который вы используете для управления базой данных, вы можете просто изменить базу данных, над которой вы работаете. В таком случае вы не сможете что-либо ограничивать. Он может даже временно открыть подоболочку (bash), что является еще большей проблемой для вашего случая.
Поэтому сначала я хотел бы посмотреть, что вы хотите от пользователя. Если это ограничено созданием резервной копии, восстановлением резервной копии и некоторыми другими функциями, вероятно, имеет смысл либо создать небольшую программу, которая ограничена выполнением этой функции, либо разрешить копирование только командных файлов на сервер с cron, а затем обрабатывает команды (и отбрасывает все, что выходит за рамки разрешенных).
Использование root для этого — плохая идея. Добавьте своего пользователя в группу kvm
, выйдите (из всех сеансов )и войдите в систему, и все будет в порядке.