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