Que shell padrão usar para um usuário SSH limitado a um único comando

6

Ao limitar um usuário a um único comando via ssh , qual shell padrão deve ser usado para o usuário? Este é um acompanhamento para como o shellshock pode ser explorado através do SSH? Eu tenho uma máquina que está executando um servidor ssh e tem um usuário fictício. Limitei esse usuário fictício a executar um único comando sobre ssh, especificando uma opção command no arquivo authorized_keys . Eu tenho usado bash como o shell padrão do usuário fictício, mas desde o bug do shellshock, tenho pensado que talvez haja um shell mais seguro. O usuário fictício só tem permissão para executar um comando rsync para que a imagem seja executada na maioria dos shells. Especificamente, o comando que o usuário tem permissão para executar é:

rsync --server --sender -lHogDtpre.iLs . //home/dummyuser/data/"

Eu não sou o administrador do servidor, embora eu possa pedir algumas mudanças fáceis, então não é possível configurar algo como uma cadeia chroot no arquivo /etc/sshd/sshd_config . Idealmente, eu seria capaz de limitar o comando fazendo login como o usuário fictício com uma chave irrestrita.

    
por StrongBad 08.12.2014 / 10:56

1 resposta

2

Você pode escrever esse shell:

cat >/tmp/rsyncshell.c <<EOF
#include <unistd.h>
char *argv[] = (char *[]) {
        "/usr/bin/rsync", "--server", "--sender", 
        "-lHogDtpre.iLs", ".", "//home/dummyuser/data/" };
int main () { execv(argv[0], argv); }
EOF

Compile o novo shell:

gcc -o /bin/rsyncshell /tmp/rsyncshell.c

defina o interpretador dummyuser como /bin/rsyncshell

    
por 22.10.2016 / 00:16