Eu criei o usuário MY_USER. Defina seu diretório pessoal como / var / www / RESTRICTED_DIR, que é o caminho ao qual ele deve se restringir. Então editei sshd_config e defina:
Match user MY_USER
ChrootDirectory /var/www/RESTRICTED_DIR
Então eu reiniciei o ssh. Tornei MY_USER proprietário (e proprietário do grupo) de RESTRICTED_DIR e o modificou para 755. Recebo
Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER
Se eu removi as 2 linhas do sshd_config, o usuário poderá fazer login com sucesso. Claro que pode acessar todo o servidor. Qual é o problema? Eu até tentei chutar RESTRICTED_DIR para fazer o root (como eu li em algum lugar que alguém resolveu o mesmo problema). Sem sorte ..
/
,/var
,/var/www
, e/var/www/RESTRICTED_DIR
todos devem cumprir os requisitos de segurança acima). É um verdadeiro chroot (reveja a página man) - diretório home do seu usuário precisa existir dentro do chroot , como obrigação/bin
e todas as outras coisas o usuário vai precisar ...sudo chown root:root -R /path/to/home; sudo chmod 755 -R /path/to/home
/var/www
diretamente as permissões do caminho, o que pode quebrar o apache, seria melhor colocar o diretório sftp em outro caminho e usar o mapeamento de URL no Apache para apontar para o outro diretório . Verifique a documentação aqui httpd.apache.org/docs/2.4/urlmapping.html emFiles Outside DocumentRoot
O diretório ChrootDirectory deve pertencer à raiz e ter o modo 755:
Ok, agora todos os arquivos
/var/www/RESTRICTED_DIR
devem pertencer aMY_USER
, que devem pertencer aowww-data
grupo, e ter o modo 775 para permitir permissões de grupo, como este:NOTA: Lembre - se de que é uma boa prática permitir acesso apenas a uma pasta htdocs se você estiver configurando o apache.
fonte
sudo usermod -a -G www-data MY_USER
como o grupo deve vir depois-G
Após algumas soluções de problemas hoje, percebi que o root também deve poder gravar nos diretórios.
O seguinte não funcionou:
Assim que consertei isso, meu chroot começou a funcionar.
fonte