Abbiamo un ambiente di alcune migliaia di utenti che eseguono applicazioni su circa 40 cluster di dimensioni comprese tra 20 nodi di calcolo e 98.000 nodi di calcolo. Gli utenti di questi sistemi generano file di grandi dimensioni (a volte> 1 PB) controllati da autorizzazioni unix tradizionali (gli ACL di solito non sono disponibili o pratici a causa della natura specializzata del filesystem).
Al momento abbiamo un programma chiamato "give", che è un programma suid-root che consente a un utente di "dare" un file a un altro utente quando le autorizzazioni di gruppo sono insufficienti. Quindi, un utente digitare qualcosa di simile al seguente per dare un file a un altro utente:
> give username-to-give-to filename-to-give ...
L'utente ricevente può quindi utilizzare un comando chiamato "take" (parte del programma give) per ricevere il file:
> take filename-to-receive
Le autorizzazioni del file vengono quindi trasferite efficacemente all'utente ricevente.
Questo programma esiste da anni e vorremmo rivisitare le cose da un punto di vista della sicurezza e funzionale.
Il nostro attuale piano d'azione è quello di rimuovere il marcio bit nella nostra attuale implementazione di "dare" e impacchettarlo come app open source prima di ridistribuirlo in produzione.
Qualcuno ha un altro metodo che usano per trasferire file estremamente grandi tra utenti quando sono disponibili solo le autorizzazioni unix tradizionali?
chown
dovresti farlo .. Sembra che tu voglia copiare anche il file, una volta che entrambe le parti coinvolte hanno concordato.