Ich lade mit scp Dateien auf mein Shell-Konto hoch. Da ich auf dem Server andere Berechtigungen als auf meinem Computer benötige, möchte ich eine Möglichkeit haben, die Berechtigungen beim Hochladen einfach zu ändern, ohne auf das Konto zugreifen und sie manuell ändern zu müssen.
upload
permissions
scp
Florian Mayer
quelle
quelle
Meine bevorzugte Arbeitslösung wäre,
rsync
stattdessen Folgendes zu verwenden :Ersetzen:
Mit:
Dies verhindert, dass Sie sich zweimal authentifizieren. Es gibt auch viele andere Optionen mit rsync, die wahrscheinlich einen Mehrwert bringen, beispielsweise die Möglichkeit, Eigentümer, Gruppe usw. beizubehalten.
quelle
--perms
auch verwenden. explainshell.com/...Ich habe einige Experimente mit scp gemacht. Für neue Dateien, die auf den Zielserver hochgeladen werden, haben die Dateien die gleichen Berechtigungen wie auf dem Quellserver. Wenn vorhandene Dateien auf dem Zielserver überschrieben werden, ändern sich die Berechtigungen für diese Dateien nicht.
Ich habe diese Experimente mit CentOS 4.6 durchgeführt.
quelle
Sie können dies mit tar, ssh und umask wie folgt tun:
auf Host 1:
auf host2:
Sie können die Schalter -v auf tar ablegen, die ich hier angegeben habe, damit Sie sehen können, wie die Dateien auf host1 geteert und über STDOUT (aka. -) gesendet werden und dann auf host2 nicht geteert werden.
HINWEIS: Warum funktioniert das? Tars Standardverhalten besteht darin, Dateien mit der umask eines entfernten Benutzers zu entpacken. Im obigen Beispiel habe ich den Befehl umask eingefügt, um ihn explizit auf einen anderen Wert zu setzen. Dies zeigt, dass der Remote- TAR die Berechtigungen auf der Remote-Seite ändert.
quelle
umask
nur Berechtigungen zu subtrahieren, z. B. für eine lokale Datei, mit der700
Sie die Datei755
auf dem Zielserver nicht erhalten konnten , oder irre ich mich?--no-same-permissions
für die zweitetar
Verwendung, wenn derumask
die gesamten Dateien festlegen, die auf den Remote-Server geschrieben wurden. Es gibt keine individuelle Kontrolle für verschiedene Dateien. Ich verwende dies häufig, da ich Berechtigungen entfernen möchte, die auf meinem Laptop in Ordnung waren, wenn ich zum Beispiel auf eine Remote-Bereitstellung kopiere.--no-same-permissions
ist laut Manpage auch korrekttar
. Ich habe die Eingabeaufforderungen in meinem Beispiel geändert, sodass diesbezüglich keine Verwirrung herrscht.Ich habe ein kleines Skript für die Aufgabe in Python geschrieben. Sie können python script.py -p o + r einige Dateien einige / dir / on / the / server /
quelle
Ich würde vorschlagen, Sticky Bit für den Ordner einzurichten, damit die Dateien, die Sie in diesen Ordner hochladen, diese Berechtigung automatisch erhalten.
"1" setzt das Sticky-Bit.
Sie müssen also nur einen Befehl hochladen und anschließend keinen weiteren ausführen.
quelle
Angenommen, Sie laden auf eine UNIX-Variante hoch, sollten die Berechtigungen Ihren UMASK-Einstellungen entsprechen. Ich kann mich nicht mehr genau erinnern, welche Punktedateien für SCP verarbeitet werden, aber wenn Sie Ihre UMASK auf eine dieser Dateien einstellen, werden die Berechtigungen für die von Ihnen erstellten Dateien darauf basierend festgelegt. Es hängt wahrscheinlich davon ab, welche Shell Sie auf dem Remote-System verwenden.
Verwenden Sie auf keinen Fall die Option -p, da dies genau das Gegenteil von dem ist, was Sie möchten.
quelle