Agora que proftpd
tem sua própria implementação de SFTP por meio do módulo mod_sftp
, usando esse para as suas necessidades de SFTP (em vez de OpenSSH) podem resolver esse problema com precisão.
Estou tendo problemas com um ambiente chrooted no Ubuntu 12.04.
Objetivo
Configure o servidor FTP / SFTP onde os usuários fazem parte de um novo grupo 'sftp' que pode ser enviado para o mesmo diretório
Configuração do ProFTP
A configuração do ProFTP é uma base construída no Ubuntu e funciona como esperado. O usuário 'test1' pode efetuar login no servidor via ftp no tcp 21 e ser chrooted em seu diretório / home / test1 / ftproot.
no /etc/proftpd/proftpd.conf
# Use this to jail all users in their homes
DefaultRoot ~/ftproot
Quando o usuário test1 efetua login via ftp, ele vê somente / (é o que eu quero).
Mas quando o mesmo usuário efetua login via sftp, e é corretamente chrooted usando sshd_config, porque o diretório / home / test1 DEVE ser de propriedade de root, o usuário efetua login via sftp e vê:
/
/ftproot
/.bashrc
O que isto significa é que o usuário NÃO termina no mesmo diretório / ftproot. test1 terminará em seu diretório home / home / test1 por padrão, que na verdade é propriedade de root. Portanto, ele não pode escrever nada via sftp até que ele mude os diretórios para / ftproot.
Como faço para configurar o servidor sftp, então, por padrão, ele acaba no mesmo diretório?
Aqui estão as minhas configurações relevantes do sshd_config:
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp -f AUTH -1 VERBOSE
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
#AllowTcpForwarding No
O ChrootDirectory% h / ftproot não funciona.
Agora que proftpd
tem sua própria implementação de SFTP por meio do módulo mod_sftp
, usando esse para as suas necessidades de SFTP (em vez de OpenSSH) podem resolver esse problema com precisão.
Você precisa alterar em qual pasta o usuário 'test1' chega com SSH. Veja a resposta a esta pergunta: link ;
Adicione cd subdir/subdir
a ~ / .bashrc ou ~ / .bash_profile ou
altere o diretório inicial do usuário.
Para alterar o diretório pessoal de um usuário: usermod -d /path/to/dir/ username