Я должен позволить пользователю создать дампы mysql, но я хочу ограничить что-либо еще. Я должен сделать это через ssh в сервер, так как mysql сервер только слушает на внутренних IP-адресах, препятствуя тому, чтобы я получил доступ к mysql серверу непосредственно.
Я попытался заключить в тюрьму пользователя SSH, но это не вполне работало, так как это не могло соединиться с базой данных по сокету mysql, даже если бы я скопировал каталог сокета в тюрьму.
Затем я считал что-то о /sbin/nologin
разрешение пользователю пройти проверку подлинности, не запуская оболочку. Я, хотя, возможно, я так или иначе мог передать команду для создания дампа / туннель что-то прямо к mysql.
У кого-либо есть опыт, позволяя пользователю создать дампы базы данных через ssh, но ограничивая что-либо еще?
Пользователь мог также использовать инструмент как Продолжение Pro / MySQL Workbench для соединения, но они должны будут все еще пойти через ssh, потому что сервер базы данных в других отношениях недоступен.
И они должны были бы загрузить дамп, но я могу сделать дамп доступным по SFTP.
Два возможных решения.
Тюрьма SSH, http://allanfeid.com/content/creating-chroot-jail-ssh-access
Альтернатива, Jailkit, Простой & простой способ заключить в тюрьму пользователей
Или предел пользователи авторизованными командами, если они используют ssh ключи,
добавьте код, необходимо выполнить дамп к .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