O usuário chroot não inicia em seu diretório inicial e não carrega seus bash_profiles

O usuário chroot não inicia em seu diretório inicial e não carrega seus bash_profiles

Se o usuário logar, ele inicia em /do chroot (que é /var/jail na máquina real). Eu gostaria que ele começasse em seu diretório inicial. Além disso, ele parece não carregar nenhum de seus arquivos de perfil (.bash.rc etc). eu seguiessetutorial para criar o ambiente chroot. Esta é a aparência do meu /etc/passwd:

test:x:1004:1008:,,,:/var/jail/home/test:/bin/bash

esta é a aparência do meu arquivo /var/jail/etc/passwd:

test:x:1004:1008:,,,:/home/test:/bin/bash

Também descobri que, se eu remover

Match User test
    ChrootDirectory /var/jail
    AllowTCPForwarding no
    X11Forwarding no

do meu /etc/ssh/sshd_config, o usuário inicia em sua pasta inicial correta e com suas configurações de bash carregadas. Porém, ele é capaz de sair do ambiente chroot se eu remover essa parte.EsseA pergunta que fiz antes está um tanto relacionada, pois acho que a aparência errada da linha de comando é causada pelos arquivos de perfil não carregados. Então, alguma idéia de como consertar isso?

Responder1

Sua configuração está correta, exceto por um pequeno detalhe: o diretório inicial /etc/passwdnão deve conter a parte do caminho chroot. Altere para:

test:x:1004:1008:,,,:/home/test:/bin/bash

reinicie sshde tente novamente.

De man sshd_config:

Diretório Chroot

Especifica o nome do caminho de um diretório para chroot(2) após a autenticação. Todos os componentes do nome do caminho devem ser diretórios de propriedade raiz que não possam ser gravados por nenhum outro usuário ou grupo. Após o chroot, sshd(8) muda o diretório de trabalho para o diretório inicial do usuário.

Ou seja, primeiro sshdexecuta chroot(no nosso caso chroot /var/jail) e depois sshdmuda o diretório para o homedir do usuário (no nosso caso cd /home/test- em um ambiente chroot cd /var/jail/home/testnão funcionaria).

Se você estiver usando Debian/Ubuntu (já que o tutorial que você mencionou é para Debian), você pode querer criar um arquivo chamado /var/jail/etc/debian_chrootcom conteúdo "chroot", isso aparecerá no prompt do usuário entre parênteses como este: (chroot)test@servername:~$.

(Dupliquei sua configuração no meu Ubuntu 12.04 e funcionou após a remoção /var/jailda entrada do teste do usuário em /etc/passwd.)

informação relacionada