Разрешить пользователю подключаться к mysql через ssh для создания дампа базы данных, но не допускать ничего другого

Мне нужно позволить пользователю создавать дампы mysql, но я хочу ограничить что-то еще. Я должен сделать это через ssh на сервере, так как сервер mysql только прослушивает внутренние IP-адреса, не позволяя мне напрямую обращаться к серверу mysql.

Я попытался заключить в тюрьму пользователя ssh, но это не совсем сработало, поскольку он не мог подключиться к базе данных через сокет mysql, даже если я скопировал каталог сокетов в тюрьму.

Затем я прочитал что-то о /sbin/nologin, позволяя пользователю аутентифицироваться без запуска оболочки. Я, возможно, каким-то образом могу передать команду для создания дампа / туннеля, что-то прямо в mysql.

У кого-нибудь есть опыт, позволяющий пользователю создавать дампы базы данных через ssh, но ограничивая что-нибудь еще?

Пользователь может также использовать такой инструмент, как Sequel Pro / MySQL Workbench для подключения, но им все равно нужно пройти через ssh, потому что сервер базы данных в противном случае недоступен.

И они нужно загрузить дамп, но я могу сделать дамп доступным через SFTP.

1
задан 9 March 2017 в 16:59

1 ответ

добавьте код, необходимый для выполнения дампа, на ваш .bashrc / .zshrc, за которым следует выход.

# .bashrc
echo "Creating DB Dump..."
dumpdumpdump
echo "Done"
exit

Это, однако, довольно неуверенно. Любой ctrl-c до выхода в конечном итоге даст пользователю оболочку. Вы можете добавить ловушку, чтобы выйти из INT и TERM, чтобы избежать этого

trap exit INT TERM;
echo "Creating DB Dump..."
dumpdumpdump
echo "Done"
exit
1
ответ дан 23 May 2018 в 00:48
  • 1
    Проверить, действительно ли .bashrc или .zshrc загружаются при запуске ssh user@host 'command' – rovr138 9 March 2017 в 22:33
  • 2
    Спасибо за вашу помощь! Завершилось это, вроде этого, но скрипт запускается с параметром ForceCommand sshd_config, когда вступает правильный пользователь. – ptf 10 March 2017 в 18:21

Другие вопросы по тегам:

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