Eine Datei zwischen verschiedenen Benutzern übertragen: beste Strategie?

Eine Datei zwischen verschiedenen Benutzern übertragen: beste Strategie?

Ich habe ein Programm, das einige Dinge tut. Es läuft unter Benutzer A.

Ein sehr kleiner Teil davon besteht darin, eine Datei in ein Verzeichnis im Home-Verzeichnis von Benutzer B zu übertragen. Die Übertragung erfolgt durch einen API-Aufruf der Sprache, in der sie geschrieben ist, und nicht durch einen Systemaufruf eines Shell-Befehls.

Jetzt sehe ich mehrere Möglichkeiten, diese Übertragung durchzuführen.

  • Führen Sie das Programm als Root aus.
  • Setzen Sie A und B in dieselbe Gruppe und passen Sie die Verzeichnis-Eigentümer an
  • sudo das Programm
  • Machen Sie den Schritt mit einem Systemaufruf und sudo that
  • Legen Sie die Datei lokal in A ab und führen Sie die Übertragung extern durch (lagern Sie das Problem aus).
  • ACL das Verzeichnis von B
  • ...

Ich denke, die Anforderung ist üblich, da das Ausführen eines Programms über Root geschmacklos ist. Was wäre die üblichste Art, damit umzugehen?

BEARBEITEN

Das Programm von A erzeugt die Datei. B sollte sie lesen und löschen können.

Antwort1

Wenn es wichtig ist, die anderen Dateien von Benutzer A nicht zu sehen, erstellen Sie ein separates gemeinsames Verzeichnis, in dem beide Benutzer Lese- und Schreibrechte haben, und legen Sie die Dateien dort ab.

Oder Sie können die Datei, sobald sie erstellt wurde, mit inotifywatch und chown nach B kopieren/verschieben, hier ist ein Beispiel, legen Sie es in cron

Kopieren Sie die Dateien automatisch zum Ziel, sobald sie erstellt wurden

verwandte Informationen