Acabei fazendo isso:
/ srv / sftp / testadmin (diretório home do usuário testadmin )
/ srv / sftp / testuser / testuser (home do usuário testuser )
O grupo sftpadmin Eu chrooted para / srv / sftp:
Match Group sftpadmin
ChrootDirectory /srv/sftp
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
e o grupo sftpuser Eu chrooted para / srv / sftp / {username} e mudei seu diretório inicial para / srv / sftp / {username} / {username} (que é apenas / {username} visto do chroot):
Match Group sftpuser
ChrootDirectory /srv/sftp/%u
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp -d /%u
Por fim, dei o rwx do grupo sftpadmin no diretório / srv / sftp / testuser / testuser:
setfacl -m g:sftpadmin:rwx /srv/sftp/testuser/testuser
Isso cumpriu aproximadamente o que eu queria. O grupo sftpadmin pode ler, gravar e alterar o diretório de trabalho para qualquer coisa abaixo de / srv / sftp (incluindo o diretório "home dirs" do grupo sftpuser ). O grupo sftpuser só pode gravar no diretório / srv / sftp / {username} / {username} e não ver os outros diretórios home sftpuser , pois eles estão localizados fora do chroot o grupo sftpuser.
A única coisa indesejável sobre isso é a estrutura / srv / sftp / {username} / {username}. Um usuário do grupo sftpuser pode fazer cd .. e voltar para / srv / sftp / {username} onde o usuário não pode fazer nada útil, exceto mudar de volta para / srv / sftp / {username} / {username}. A mudança do diretório para / srv / sftp / {username} poderia ser evitada removendo-se o bit de execução para / srv / sftp / {username}, mas isso também impediria que o grupo sftpadmin mudasse para esse diretório e, assim, efetivamente impedisse a listagem de arquivos etc. no diretório / srv / sftp / {username} / {username}.