Mamy środowisko kilku tysięcy użytkowników uruchamiających aplikacje na około 40 klastrach o wielkości od 20 węzłów obliczeniowych do 98 000 węzłów obliczeniowych. Użytkownicy tych systemów generują ogromne pliki (czasami> 1PB) kontrolowane przez tradycyjne uprawnienia uniksowe (listy ACL zwykle nie są dostępne lub praktyczne ze względu na specjalistyczny charakter systemu plików).
Obecnie mamy program o nazwie „daj”, który jest programem typu suid-root, który pozwala użytkownikowi „dać” plik innemu użytkownikowi, gdy uprawnienia grupy są niewystarczające. Tak więc użytkownik wpisałby coś takiego jak poniższy, aby przekazać plik innemu użytkownikowi:
> give username-to-give-to filename-to-give ...
Odbiorca może następnie użyć polecenia o nazwie „take” (część programu podającego), aby otrzymać plik:
> take filename-to-receive
Uprawnienia do pliku są następnie skutecznie przekazywane do użytkownika odbierającego.
Ten program istnieje od lat i chcielibyśmy ponownie przyjrzeć się rzeczom z punktu widzenia bezpieczeństwa i funkcjonalności.
Nasz obecny plan działania polega na usunięciu zgnilizny w naszej obecnej implementacji „daj” i spakowaniu jej jako aplikacji typu open source, zanim ponownie wdrożymy ją do produkcji.
Czy ktoś stosuje inną metodę przesyłania bardzo dużych plików między użytkownikami, gdy dostępne są tylko tradycyjne uprawnienia uniksowe?
chown
zrób to. Wygląda na to, że chcesz również skopiować plik, gdy obie zaangażowane strony wyrażą na to zgodę.