Permitir que o usuário se conecte ao mysql via ssh para criar o despejo do banco de dados, mas não permita mais nada

3

Eu preciso deixar um usuário criar mysql dumps, mas quero restringir qualquer outra coisa. Eu tenho que fazer isso via ssh no servidor, já que o servidor mysql está apenas escutando nos endereços ip internos, impedindo que eu acesse o servidor mysql diretamente.

Eu tentei prender o usuário ssh, mas isso não funcionou muito, já que ele não pôde se conectar ao banco de dados através do soquete mysql, mesmo se eu copiei o diretório do socket para dentro da cadeia.

Então eu li algo sobre /sbin/nologin permitindo que o usuário autentique sem iniciar um shell. Eu pensei que talvez eu de alguma forma poderia passar o comando para criar o dump / tunnel algo direto para o mysql.

Alguém tem alguma experiência permitindo que um usuário crie despejos de banco de dados via ssh, mas restringindo qualquer outra coisa?

O usuário também pode usar uma ferramenta como o Sequel Pro / MySQL Workbench para se conectar, mas eles ainda precisam passar pelo ssh, porque o servidor de banco de dados é inacessível.

E eles precisariam baixar o dump, mas eu posso deixar o dump acessível por SFTP.

    
por ptf 09.03.2017 / 13:24

2 respostas

1

Duas soluções possíveis.

Cadeia SSH, link

Alternativa, Jailkit, Simple & amp; maneira fácil de prender usuários

Ou limite os usuários por comandos autorizados se eles usarem chaves ssh,

por rovr138 09.03.2017 / 19:32
1

adicione o código necessário para executar o despejo em seu .bashrc / .zshrc seguido por uma saída.

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

No entanto, isso é bastante inseguro. Qualquer ctrl-c antes da saída terminará dando ao usuário um shell. Você poderia adicionar uma armadilha para também sair em INT e TERM para evitar isso

trap exit INT TERM;
echo "Creating DB Dump..."
dumpdumpdump
echo "Done"
exit
    
por Nodebody 09.03.2017 / 18:11

Tags