Por algum motivo misterioso, os sistemas Unix / Linux guardam o mtime o mais strongmente possível. Somente o proprietário [*] pode fazer o que você precisa. Você não pode controlá-lo, mesmo com as ACLs (man setfacl).
Uma solução que posso pensar é usar o Samba, que tem a opção dos filemode
. Ele faz exatamente o que você precisa (embora o nome não seja muito óbvio). Claro que estou longe de recomendar o samba sobre o sftp; o samba é um pesadelo administrativo.
Na verdade, se eu fosse você, eu faria um hack muito, muito feio. Escreva um script que varre o arquivo sftp-log para a linha set ... modtime
, e para cada linha imediatamente tente executar touch --mtime
. Obviamente, o script precisa ser executado como root, portanto, certifique-se de que ele esteja seguro contra a injeção de código (como nomes de arquivos e datas contendo 'ou' ou $ caracteres).
[*] Na verdade, também o usuário possui CAP_FOWNER (como root), mas esse é o recurso de todo o sistema, portanto, não se aplica ao seu caso.