scp ändert die Berechtigungen für das Verzeichnis /tmp

scp ändert die Berechtigungen für das Verzeichnis /tmp

Ich verwende ein Expect-Skript, um die Übertragung einiger Supportdateien auf Terminals zu automatisieren. Die Supportdateien werden automatisch in einem Tarball archiviert, bevor sie per SCP auf das Zielterminal übertragen werden. Dies wird durch ein internes Expect-Programm erreicht, das das Passwort für SCP automatisch ausfüllt, sodass wir das Passwort nicht eingeben müssen. Ich kann die einzelnen Dateien problemlos kopieren, aber wenn ich versuche, die tar.gz-Datei zu kopieren, ändert sie die Berechtigungen des Verzeichnisses /tmp. Ich habe das Verzeichnis /tmp für die Berechtigungen auf 1777 zurückgesetzt und es per Chown auf root.root geändert, was der normalen Einrichtung entspricht, aber das funktioniert nicht immer. Es verursacht SQLite-Fehler, da SQLite keine temporäre Datei in /tmp schreiben kann, was sehr störend ist. Wie kann ich die genaue Ursache dafür ermitteln? Ich weiß, dass es mit der tar.gz-Datei zusammenhängen muss, aber ich war der Meinung, dass Tar die Berechtigungen für die Datei beibehalten würde.

Die Berechtigungen für die Datei in meinem Verzeichnis sind:

-rw-rw-r-- 1 aembree aembree  88K Oct  2 15:20 dropin.tar.gz

Vor der Übertragung sieht /tmp in einem ls -al folgendermaßen aus:

drwxrwxrwt  15 root root 8.4K Oct  2 15:08 tmp

Nach der Übertragung sieht /tmp folgendermaßen aus:

drwxrwxr-x  15 10539 10539 8.4K Oct  2 15:01 tmp

Der ausgeführte Tar-Befehl ist der folgende:

tar -vPczf /home/aembree/bin/resources/dev/dropin.tar.gz --exclude='helperscript' -C $dropinlist . > /home/aembree/bin/resources/logs/tarlog

Sobald sich die Datei auf dem Remotecomputer befindet, führt expect den folgenden Befehl aus, um sie zu entpacken:

send "cd /tmp ; tar -xzf dropin.tar.gz ; rm dropin.tar.gz ; cd ;\n"

Antwort1

Sie haben .in Ihrer Quellsammlung Folgendes aufgenommen tar. Das Problem tritt auf, wenn Sie das Tarball extrahieren und die Berechtigungen angewendet werden. Ihr Quellverzeichnis .wird extrahiert und die Berechtigungen angewendet. Leider ist zum Zeitpunkt der Extraktion .tatsächlich Folgendes vorhanden /tmp.

Die Lösung besteht entweder darin, es aus dem Tarball auszuschließen .oder darin ein temporäres Verzeichnis zu erstellen, /tmpin das alles extrahiert werden kann.

verwandte Informationen