Мне нужно позволить пользователю создавать дампы mysql, но я хочу ограничить что-то еще. Я должен сделать это через ssh на сервере, так как сервер mysql только прослушивает внутренние IP-адреса, не позволяя мне напрямую обращаться к серверу mysql.
Я попытался заключить в тюрьму пользователя ssh, но это не совсем сработало, поскольку он не мог подключиться к базе данных через сокет mysql, даже если я скопировал каталог сокетов в тюрьму.
Затем я прочитал что-то о /sbin/nologin, позволяя пользователю аутентифицироваться без запуска оболочки. Я, возможно, каким-то образом могу передать команду для создания дампа / туннеля, что-то прямо в mysql.
У кого-нибудь есть опыт, позволяющий пользователю создавать дампы базы данных через ssh, но ограничивая что-нибудь еще?
Пользователь может также использовать такой инструмент, как Sequel Pro / MySQL Workbench для подключения, но им все равно нужно пройти через ssh, потому что сервер базы данных в противном случае недоступен.
И они нужно загрузить дамп, но я могу сделать дамп доступным через SFTP.
добавьте код, необходимый для выполнения дампа, на ваш .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