A correspondência pode ter vários condicionais. Experimente:
Match Group webrecom_sftpusers, User !site_user
Eu tenho uma configuração chroot no meu servidor CentOS, (chroot sem acesso ao shell / strict sftp). Apenas para referência, as pastas são assim:
home/sftp_users/%u (root:root 750)
home/sftp_users/%u/input (site_user:sftp_users 770)
home/sftp_users/%u/input/result (site_user:sftp_users 770)
No meu arquivo sshd.conf eu tenho isto:
Subsystem sftp internal-sftp
Match Group webrecom_sftpusers
ChrootDirectory /home/sftp_users/%u
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
Isso praticamente faz o que eu quero. Se você notar acima, não tornei o usuário o proprietário das pastas em home directory . A razão para isso é que não quero que eles possam excluir esses diretórios ou alterar as permissões sobre eles. Caso contrário, alguém é capaz de estragar tudo em algum momento. Eles ainda têm acesso a -r -w -e por causa de seu grupo. Embora isso faça basicamente o que eu quero, por causa de sua capacidade de gravar em input , eles podem excluir o diretório result . Eu posso contornar esse in PHP recriando essa pasta. O PHP procurará nessas pastas por arquivos para pegar e executar e, em seguida, retornar relatórios sobre eles.
O problema é que site_user pertence ao seu próprio grupo site_user e no PHP eu posso somente atribuir uma pasta aos grupos aos quais um usuário pertence. Se adicionar site_user a sftp_users , fica preso na cadeia CHROOT.
Suponho que posso criar as pastas de propriedade de site_user e no grupo site_user e definir as permissões como 0777, mas:
site_user a sftp_users , mas não ficar
na cadeia A correspondência pode ter vários condicionais. Experimente:
Match Group webrecom_sftpusers, User !site_user