Como evitar que usuários de rsync usem -t?

3

Eu executo um servidor no qual fornecemos credenciais sftp para clientes para entrega de arquivos de vários tamanhos. É importante para mim manter o tempo carregado, e eu sinceramente não poderia dar uma porcaria sobre a hora em que foi criado ou modificado no sistema original. Infelizmente, muitos de nossos clientes insistem em usar rsync -av para fazer upload de seus arquivos.

Eu já fiz muito - usei o chroot para proteger os usuários, impedi o acesso ssh, etc, mas isso continua a ser um saco no nosso traseiro. Existe uma maneira de evitar que o rsync ou o sftp altere o lado do servidor de criação / modificação?

Eu tentei usar o google, mas não consigo fornecer a constelação correta de termos para excluir todos os artigos / perguntas de pessoas que tentam usar o rsync do lado do cliente.

    
por FrankieTheKneeMan 23.11.2016 / 21:48

2 respostas

3

Eu codificaria meu caminho em torno de inotifywait -r -m --csv -e ATTRIB /my/dir . Isso imprime qualquer arquivo assim que alguém modifica o mtime, o ctime, as permissões (e outros stufF menores) para que você possa apenas touch desse arquivo de acordo com seus requisitos. É uma solução complicada e desajeitada, mas não consegue pensar em nada mais simples para o caso geral.

Sua exigência para atualizar mtime não é padrão; está tudo bem com ctime . Normalmente, você permite que as pessoas retrocedem com mtime livremente, para que ele possa armazenar a data em que o conteúdo do arquivo foi significativamente atualizado. A hora em que algo sobre o arquivo foi alterado (por exemplo, alteração de horário, permissões alteradas, arquivo criado, etc.) está marcado com ctime ; veja stat /my/file ou ls -lc ou localize o mais recente com find . -cmin -60

    
por 23.11.2016 / 23:29
0

O arquivo authorized_keys do lado do servidor pode fornecer um argumento "COMMAND=" que significa "Se alguém usou essa chave, ignore o comando que seria executado no servidor e execute este comando." Este comando recebe todos os sinalizadores e opções que o comando padrão teria recebido. Você pode fornecer um comando que remove os sinalizadores que você não deseja e, em seguida, executa o comando esperado. Um artigo sobre algo semelhante está aqui: link

O problema com essa resposta é que não tenho certeza se o sinalizador "-t" é comunicado dessa maneira ou está no protocolo RSYNC.

    
por 24.11.2016 / 13:50

Tags