Link simbólico e filezilla sobre sftp

15

Sou muito novo no debian e estou tentando configurar um servidor.

Eu criei um usuário que só pode acessar sua pasta /home/username (e seu subdiretório).

Agora eu quero usar esse usuário para o servidor que eu configurei, e eu dei a ele acesso a /var/www , mas não consigo ver /var/www através do sftp e fiz um link simbólico como este:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

Agora, com o filezilla, consigo ver a pasta www assim:

Masquandoeutentoabri-lo,euentendoisso:

O que estou fazendo de errado?

    
por Doc 14.11.2012 / 16:03

2 respostas

17

É provável que o SFTP esteja sendo chrooted, de modo que o diretório / var / www não esteja disponível para o usuário na cadeia chroot.

Procure em /etc/ssh/sshd_config e examine as diretivas do sftp. Você vê algo como:

Match group sftp
  ChrootDirectory /home/%u
  AllowTcpForwarding no
  ForceCommand internal-sftp

A página de manual do sshd_config é aqui .

Basicamente, quando o usuário está em /home/username em SFTP, esse diretório se torna / e referências fora de /home/username não estão disponíveis. Na verdade, um link simbólico como ln -s /var/www /home/username/www parecerá que você está tentando alcançar /home/username/var/www (ou seja, /home/username agora é / , portanto, qualquer link que faça referência a /var/www também deve ser um subdiretório de /home/username em o contexto do chroot).

Como solução, você pode desativar o chroot (mas isso terá outras implicações de segurança, principalmente com usuários de SFTP controlando o sistema de arquivos). Você pode fazer uma montagem em loop de / var / www em / home / username / www (algo como mount --bind /var/www /home/username/www (confira sua documentação para mount ), que deve funcionar como esperado em chroot). Você também pode usar o arquivo sshd_config para excluir um usuário em particular do chroot (embora, novamente, com implicações de segurança).

Eu tentaria montar o bind primeiro.

    
por 14.11.2012 / 17:01
0

Resolvi desvincular o link simbólico que criei e com

root@server:/home/username# mkdir www
root@server:/home/username# mount --bind /home/username/www /var/www

(mesmo se eu perdi tudo estava em / var / www, mas eu não me importo)

obrigado a todos!

    
por 14.11.2012 / 17:31