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

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

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

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

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

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

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

2
задан 9 March 2017 в 15:59

2 ответа

Два возможных решения.

Тюрьма SSH, http://allanfeid.com/content/creating-chroot-jail-ssh-access

Альтернатива, Jailkit, Простой & простой способ заключить в тюрьму пользователей

 

Или предел пользователи авторизованными командами, если они используют ssh ключи,

1
ответ дан 2 December 2019 в 03:42

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

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

Это однако довольно небезопасно. Любой ctrl-c перед выходом закончит тем, что дал пользователю оболочку. Вы могли добавить прерывание, чтобы также выйти на INT и ТЕРМИНЕ для предотвращения этого

trap exit INT TERM;
echo "Creating DB Dump..."
dumpdumpdump
echo "Done"
exit
1
ответ дан 2 December 2019 в 03:42

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

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