Nossa solução atual, parcial, aproveita rsync --ignore-existing
e força sua linha de comando no lado do servidor com um (não gravável) ~/.ssh/authorized_keys
assim:
command="rsync --server -e.Ls --ignore-existing . ." ssh-ed25519 ABCDEDFGfoobarbaz user@host
- mais do que suficiente para evitar que usuários ocasionais baixem arquivos remotos
- pode modificar o arquivo remoto se o cliente usar
rsync -r --ignore-existing <single_file> user@server:
em vez dersync -r --ignore-existing <whole_directory> user@server:
- não tem 100% de certeza se existem outras falhas ou formas de contornar o uso pretendido
- bónus adicional: o rsync está em todo o lado e tem à mão
--bwlimit
option
Então, estamos apenas na metade do caminho e essa não é uma solução real e completa.