Wir haben eine Umgebung von einigen tausend Benutzern, die Anwendungen auf ungefähr 40 Clustern ausführen, deren Größe von 20 Rechenknoten bis 98.000 Rechenknoten reicht. Benutzer auf diesen Systemen generieren massive Dateien (manchmal> 1PB), die von herkömmlichen Unix-Berechtigungen gesteuert werden (ACLs sind aufgrund der speziellen Natur des Dateisystems normalerweise nicht verfügbar oder praktisch).
Wir haben derzeit ein Programm namens "give", ein Suid-Root-Programm, mit dem ein Benutzer eine Datei einem anderen Benutzer "geben" kann, wenn die Gruppenberechtigungen nicht ausreichen. Ein Benutzer würde also Folgendes eingeben, um einem anderen Benutzer eine Datei zu geben:
> give username-to-give-to filename-to-give ...
Der empfangende Benutzer kann dann einen Befehl namens "take" (Teil des give-Programms) verwenden, um die Datei zu empfangen:
> take filename-to-receive
Die Berechtigungen der Datei werden dann effektiv an den empfangenden Benutzer übertragen.
Dieses Programm gibt es schon seit Jahren und wir möchten die Dinge unter Sicherheits- und Funktionsgesichtspunkten erneut betrachten.
Unser aktueller Aktionsplan besteht darin, die Bitfäule in unserer aktuellen Implementierung von "give" zu entfernen und als Open Source-App zu verpacken, bevor wir sie erneut in der Produktion bereitstellen.
Hat jemand eine andere Methode, um extrem große Dateien zwischen Benutzern zu übertragen, wenn nur herkömmliche Unix-Berechtigungen verfügbar sind?
chown
sollten Sie dies tun. Es scheint, dass Sie die Datei auch kopieren möchten, sobald beide beteiligten Parteien zugestimmt haben.