Eu configurei o SFTP sobre o cygwin recentemente e percebi que não podemos esconder os seguintes diretórios:
- / cygdrive
- / dev
Como você pode estar ciente de que o / path / to / sftp tem que ser de propriedade da raiz e não pode ser gravado por nenhum outro usuário ou grupo, você precisa atualizar o id do usuário em / etc / passwd para 0 porque existe nenhum conceito de raiz no Windows.
Se você prender o usuário ao não-cygdrive (por exemplo, / sftp), você verá apenas / cygdrive (nada será exibido em / cygdrive).
Se você prender o usuário ao cygdrive (por exemplo, /cygdrive/d/.../sftp), verá / cygdrive / d. No entanto, você não pode mudar para nenhum diretório pai se configurá-lo corretamente.
Espero que as informações acima ajudem!
Por favor, verifique os seguintes itens:
- Certifique-se de que o ID do usuário atual que está efetuando login (james em seu exemplo) em / etc / passwd seja zero. É porque o cygwin irá alterar o usuário de todos os diretórios em root como o usuário atual que está efetuando login. Por favor, execute o comando
ls -l /
para verificar. - Verifique se / home, / home / james, / home / james / upload é o usuário atual de propriedade (ou seja, equivalente a propriedade da raiz com o ID do usuário 0).
-
Verifique se o arquivo / etc / sshd_config contém:
Match user james ChrootDirectory /home/james/upload/ ForceCommand internal-sftp