sftp jail user. erro no winscp

2

Eu tenho uma configuração onde usuários específicos podem fazer o login apenas no sftp e não no ssh.
Além disso, os usuários são presos em diretórios específicos.

Digamos que o nome do usuário seja stefanos e seu diretório raiz seja /vhosts/wild.domain.com /
O diretório é montado com mount -o bind /var/www/websites/site1/ /vhosts/wild.domain.com/

O sshd_config é:

Match user stefanos
   ChrootDirectory /vhosts/wild.domain.com/
   ForceCommand internal-sftp

O log é:

Jun 23 15:42:52 hostname sshd[32447]: Accepted password for stefanos from 11.22.33.44 port 64759 ssh2
Jun 23 15:42:52 hostname sshd[32447]: pam_unix(sshd:session): session opened for user stefanos by (uid=0)
Jun 23 15:42:52 hostname sshd[32572]: subsystem request for sftp
Jun 23 15:43:07 hostname sshd[32447]: pam_unix(sshd:session): session closed for user stefanos

O problema é (lançado pelo WinSCP):

Cannot get real path for '/var/www/websites/site1'.
No such file or directory.
Error code: 2
Error message from server: No such file
Request code: 16

O mais estranho é que quando eu clico em OK para a mensagem de erro, ele loga corretamente com todos os diretórios em seu lugar .. O que eu estou perdendo aqui ??

    
por Stefanos Kalantzis 23.06.2011 / 15:01

1 resposta

2

Chroot define / como o diretório. O diretório home dos usuários é aparentemente definido como /var/www/websites/site1 , assim, quando o WinSCP efetua login, ele tenta iniciar no diretório inicial do usuário, que no sistema real seria /vhosts/wild.domain.com/var/www/websites/site1

Presumindo que esse usuário stefanos acessa o sistema apenas por meio do sftp, seria seguro configurar o diretório inicial como / . Caso contrário, acho que a mensagem provavelmente desaparecerá se você definir um Diretório Remoto padrão na guia "Diretórios" do WinSCP.

    
por 23.06.2011 / 15:13