GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Neue Berechtigungen für Dateien nach Rsync von Seedbox erzwingen?

Ich habe ein Seedbox-Konto, das ich zum Torrenting verwende. Ich habe einen Cron-Job eingerichtet, der rsync verwendet um alle Dateien aus der Seedbox auf meinen 14.04.1 Ubuntu-Server herunterzuladen. Der Download-Ordner ist eine Samba-Freigabe, da ich zuvor Windows verwendet habe, um den Inhalt in Ordnern zu organisieren, bevor ich ihn an einen dauerhafteren Ort auf meinem Server verschoben habe. Vor dem Upgrade auf 14.04 habe ich 12.04 verwendet und alles hat gut funktioniert.

Das Problem ist, dass die Dateien, die ich von der Seedbox bekomme, einem Benutzer namens „544“ gehören (dies ist der von der Seedbox generierte Benutzername, kein oktales Ding) und von meinem Benutzer auf meinem Server nicht gelöscht werden können. Nachdem ich die Berechtigungen für den Download-Ordner geändert habe, kann ich sie löschen. Außerdem habe ich allen Benutzern Lese-/Schreibberechtigungen für den Samba-Ordner gegeben, nachdem dieser freigegeben wurde.

Meine Frage lautet also:Ist es möglich, durch einen eleganten Befehl, der ausgeführt wird, rsync zu erstellen Benutzer/Berechtigungen für die Dateien beim Herunterladen ändern? Oder ist es möglich, die Ordnerfunktion so zu gestalten, dass alle neuen Dateien automatisch den Benutzer wechseln, wenn sie dorthin kopiert/verschoben werden? Ich denke, ich könnte den chmod einfügen Befehl in sudo cron hin und wieder auszuführen, um den Eigentümer der Dateien zu ändern, aber da die herunterzuladende Datenmenge manchmal ziemlich groß sein kann, ist es schwierig zu wissen, wann er in Bezug auf den rsync-Job ausgelöst werden soll um sicherzustellen, dass alle Dateien heruntergeladen werden.

Akzeptierte Antwort:

rsync nur behält den Eigentümer, wenn Sie ihn mit -o darum bitten — andernfalls gehören die Dateien dem Benutzer, der rsync ausführt Befehl, genau wie beim Erstellen anderer Dateien. -a enthält -o , jedoch so viele gemeinsame rsync Befehlszeilen enthalten es. man rsync enthält dazu explizit eine Passage:

For example: if you want to use -a (--archive) but don’t want -o
(--owner),  instead  of  converting  -a  into -rlptgD, you could
specify -a --no-o (or -a --no-owner).

Also statt rsync -a source dest Sie können rsync -a --no-o source dest verwenden Dateien im Besitz des Benutzers zu haben, der den Befehl ausführt.

Andererseits können Sie den Eigentümer einer Datei normalerweise nur ändern, wenn Sie root sind, daher kommt dies nicht oft vor. Wenn es aus irgendeinem Grund notwendig ist, diesen Job als root auszuführen, und Sie möchten, dass die Dateien Ihrem normalen Benutzer und nicht root gehören, können Sie --chown verwenden Möglichkeit:

rsync -a --chown=youruser:yourgroup ...

Es gibt auch eine --usermap Option für kompliziertere Zuordnungen, wenn Sie einige Benutzer behalten möchten. Es nimmt eine durch Kommas getrennte Liste von from:to Paare.

Verwandt:der Unterschied zwischen &&und | im Bash-Skript?

Als letzte Option, da Sie anscheinend rsync ausführen von einem Cron-Job aus, können Sie einfach die Eigentümer-/Berechtigungsänderungsoperation mit && chown ... an den Cron-Job anhängen .


Linux
  1. So verwenden Sie Rsync zum Synchronisieren neuer oder geänderter/geänderter Dateien in Linux

  2. Neue Dateien erhalten, um Gruppenberechtigungen unter Linux zu erben?

  3. Alle Dot Underscore-Dateien von Rsync ausschließen?

  4. Wie entferne ich rekursiv Ausführungsberechtigungen aus Dateien, ohne Ordner zu berühren?

  5. Rsync ändert die Verzeichnisberechtigungen?

Sichern Sie Ihre Dateien mit rsync

Linux-Äquivalent zu Robocopy?

rsync N neueste Dateien in einem Verzeichnis

Wie verwende ich rsync vom Windows-PC zum Remote-Linux-Server?

Wie erzwinge ich bestimmte Berechtigungen für neue Dateien/Ordner auf dem Linux-Dateiserver?

Wie kann ich Dateien/Ordner ab einem bestimmten Datum synchronisieren?