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,
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.
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,
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