Come impedire agli utenti rsync di utilizzare -t?

Faccio eseguire un server su cui forniamo credenziali sftp ai client per la consegna di file di diversa dimensione. È importnte per me conservare il tempo caricato e non sono onestamente in grado di dare una cazzata circa il tempo che è stato creato o modificato sul sistema originale. Purtroppo molti dei nostri clienti insistono sull'utilizzo di rsync -av per caricare i propri file.

Ho già fatto molto – ho usato chroot per gli utenti di sandbox, ha impedito l'accesso di ssh, ecc., Ma questo continua ad essere un dolore nel nostro culo. C'è un modo per impedire a rsync o sftp di cambiare il tempo di creazione / modifica dei server?

  • Limitare l'accesso SSH per indirizzo IP su Debian
  • come ssh alla macchina dietro il firewall?
  • miglior programma ssh per Windows?
  • Problemi di SSH: lettura da socket non rioutput: connessione resettata da peer
  • Come faccio a eseguire uno script bash locale sulle macchine remote tramite ssh?
  • RSync over SSH - l'authorization è negata anche se l'utente è nel gruppo radice
  • Ho provato googling, ma non riesco a fornire la giusta costellazione dei termini per eliminare tutti gli articoli / domande da parte delle persone che cercano di utilizzare rsync dal lato client.

    2 Solutions collect form web for “Come impedire agli utenti rsync di utilizzare -t?”

    Vorrei scrivere il mio modo inotifywait -r -m --csv -e ATTRIB /my/dir . Questo printing qualsiasi file non appena qualcuno modifica i file mtime, ctime, le autorizzazioni (e altri stufF minori) in modo da poterlo touch solo per i tuoi requisiti. È una soluzione difficile e brutta, ma non può pensare a niente di più semplice per il caso generale.

    Il requisito per aggiornare mtime non è standard; è ok con ctime . Normalmente si consente alle persone di andare indietro con mtime liberamente, in modo che possa memorizzare la data in cui il contenuto del file è stato significativamente aggiornato. Il tempo in cui è stato modificato qualcosa sul file (ad esempio il cambiamento di mtime, le autorizzazioni modificate, il file è stato creato, ecc.) Viene controllato con ctime ; vedere stat /my/file o ls -lc o individuare l'ultima con la find . -cmin -60 find . -cmin -60

    Il file autorizzato_key di server può fornire un argomento "COMMAND =" che significa che "se qualcuno ha usato questo codice, ignorare il command che avrebbe eseguito sul server e eseguire invece questo command". Questo command ha tutte le bandiere e le opzioni che il command predefinito avrebbe ricevuto. È ansible fornire un command che elimina le bandiere che non si desidera e quindi esegue il command atteso. Un articolo su qualcosa di simile è qui: https://cybermashup.com/2013/05/14/restrict-ssh-logins-to-a-single-command/

    Il problema con questa risposta è che non sono sicuro se la bandiera "-t" sia comunicata in questo modo, o sia nel protocollo RSYNC.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.