Dê uma olhada no este artigo que mostra como usar o% co_de do sshd % forçar todos os membros de um grupo particular para uma raiz de diretório comum. Você pode modificá-lo para atender às suas necessidades.
Com proftpd você pode alterar o diretório padrão editando /etc/proftpd.conf
DefaultRoot ~
mudar para o
DefaultRoot ~ / music
Como posso alcançar o mesmo resultado com o SFTP ?
Estou usando o ubuntu lucid btw.
Ty muito pela sua ajuda.
Dê uma olhada no este artigo que mostra como usar o% co_de do sshd % forçar todos os membros de um grupo particular para uma raiz de diretório comum. Você pode modificá-lo para atender às suas necessidades.
se você executar o chroot em / home e quiser que o diretório padrão seja / home / default, defina o diretório inicial do usuário como / default. Não / home porque / home será o novo /.
Se você realmente precisa manter o diretório home do usuário em / home / user, mas deseja ter um diretório padrão para sessões sftp, você pode usar o parâmetro -d para internal-sftp. Como neste exemplo:
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /mnt/sftp
ForceCommand internal-sftp -d /default
/ default sendo um diretório dentro de / mnt / sftp. Observe que o caminho aqui é novamente relativo à nova raiz.
Talvez haja uma maneira de conseguir o que você quer, mas, até onde eu sei, o sftp é operado sobre o ssh, então não tenho certeza de como fazer isso com o ssh para cada usuário.
No entanto, uma maneira de contornar o que você deseja fazer é atualizar os dados do usuário para efetuar login em um determinado diretório da seguinte maneira. Isso será
$ sudo usermod -d [certain path that you want to direct] username
A resposta de lain foi útil, mas no interesse de ser mais explícito e não depender de um link (e assim posso encontrá-lo na próxima vez):
Pesquise na web por ChrootDirectory
, para obter os documentos básicos e a configuração, não os replicarei aqui, apenas indique como resolver a questão colocada.
Para um servidor de arquivos dedicado, use: Match Group *,!sudo
então qualquer um que não seja um administrador só recebe acesso ao sftp chroot - por padrão.
Defina ChrootDirectory /home/%u
- o chroot é baseado no nome de usuário, não no diretório inicial
Certifique-se de que o diretório de usuários em / home seja de propriedade root: root
Defina o caminho do diretório home em / etc / passwd para o diretório em que você deseja estar logado por padrão - mas torne-o relativo ao diretório chroot:
Se você quiser que o usuário acnt acabe em / home / acnt / files /, defina o passwd home para acnt to / files
Certifique-se de que / home / acnt / files seja de propriedade de acnt: acnt, para que o usuário possa gravar no diretório, mesmo que / home / acnt / deva ser de propriedade de root para que o chroot jail funcione.
Eu apenas passei pelo mesmo tipo de coisa com uma instalação do Ubuntu Lucid 10.04. A resposta parece ser chroot certos logins para uma pasta específica. A única desvantagem é que a pasta para a qual eles são chroot deve ser de propriedade de root: root e não pode ser gravada pelo usuário que está efetuando login para que o sshp possa funcionar. Então, eles só têm acesso a outras pastas dentro da pasta para a qual são chrooted.
Além disso, definir a pasta padrão para o usuário usando "usermod -d não altera o padrão para o usuário que vai para a raiz / pasta no login do sftp.
Se você estiver usando o ProFTPD, dê uma olhada no módulo SFTP ProFTPD .