В нашей среде несколько тысяч пользователей работают с приложениями на 40 кластерах размером от 20 вычислительных узлов до 98 000 вычислительных узлов. Пользователи в этих системах генерируют массивные файлы (иногда> 1PB), управляемые традиционными разрешениями Unix (списки ACL обычно недоступны или практически не используются из-за специфики файловой системы).
В настоящее время у нас есть программа под названием «give», которая является программой suid-root, которая позволяет пользователю «отдавать» файл другому пользователю, когда групповые разрешения недостаточны. Таким образом, пользователь должен напечатать что-то вроде следующего, чтобы передать файл другому пользователю:
> give username-to-give-to filename-to-give ...
Получающий пользователь может затем использовать команду под названием «take» (часть программы give) для получения файла:
> take filename-to-receive
Права доступа к файлу затем эффективно передаются принимающему пользователю.
Эта программа существует уже много лет, и мы хотели бы вернуться к ней с точки зрения безопасности и функциональности.
Наш текущий план действий состоит в том, чтобы устранить гниль в нашей текущей реализации «give» и упаковать ее в приложение с открытым исходным кодом, прежде чем мы повторно развернем его в производство.
У кого-нибудь есть другой метод, который они используют для передачи очень больших файлов между пользователями, когда доступны только традиционные разрешения Unix?
chown
сделайте это. Похоже, вы также хотите скопировать файл, как только обе стороны согласны.