Chroot no subdiretório do site inicial (SFTP)

Chroot no subdiretório do site inicial (SFTP)

Em um servidor Debian apache2, estou tentando conceder acesso a um subdiretório de uma árvore webstie (diretório inicial do site:/home/site/public_html/, acesso desejado apenas para um usuário específico:/home/website/public_html/boutique/modules/sftpwkmodules

Assim, o usuário principal do site tem acesso a todas as árvores (userweb).
Mas preciso de acesso para o usuáriomódulos sfkpara o subdiretório dentro da árvore e não funciona.
Eu criei usuáriomódulos sfke grupomódulos sftpwk.
Eu configurei essas linhas emsshd_configarquivo:

Match group sftpwkmodules
    ChrootDirectory /home/website/public_html/boutique/modules/wkmanagesuppliers
     ForceCommand internal-sftp
     AllowTCPForwarding no
     X11Forwarding no

Mas quando eu me conectosftpcom este usuário, não é permitido. No log parece que há uma má propriedade no fatal:propriedade ou modos incorretos para o componente do diretório chroot "/home/website/public_html/".
Mas não posso alterar a propriedade de toda a árvore apenas para que esse usuário tenha acesso ao subdiretório. Existe uma maneira de fazer isso funcionar?

Responder1

Antes de alterar as permissões, lembre-se de que seu servidor web deverá ter pelo menos permissões de leitura para os arquivos e diretórios. Além disso, quaisquer arquivos/diretórios criados pelo usuário sfkmodules serão de propriedade desse usuário e, dependendo da sua umask, podem não ser legíveis pelo servidor web.

Uma solução a considerar seria fazer o chroot dos usuários em seus próprios diretórios fora do webroot e criar algum tipo de watchdog para detectar quando os arquivos são descartados e movê-los para o webroot. Dessa forma, você pode controlar a propriedade e as permissões.

PERL e cron são seus amigos nessa empreitada.

Responder2

Crie um grupo, adicione o usuário necessário ao grupo junto com quaisquer outros usuários aos quais você deseja ter acesso e atribua as permissões necessárias. Não use chroot desta vez.

Os comandos abaixo são para CentOS, mas você entendeu.

sudo groupadd groupname  
sudo usermod -a -G groupname admin  
sudo usermod -a -G groupname user1  
sudo chown -R admin:groupname /home/website/public_html/boutique/modules/wkmanagesuppliers  

informação relacionada