Mktemp in einem Docker-Container schlägt fehl, die Berührung funktioniert jedoch
487
Paul
Ich befinde mich in einem Docker-Container mit einem zugeordneten NFS-Volume. In einem Verzeichnis innerhalb des Volumes kann ich Dateien nach touch
oder mit anderen Methoden erstellen, jedoch nicht mit mktemp
:
$ ls -ld /home/share/scripts/converth264queue/ drwxrwxr-x 1 abc abc 964 Oct 22 08:04 /home/share/scripts/converth264queue/ $ touch /home/share/scripts/converth264queue/test2 $ ls -l /home/share/scripts/converth264queue/test2 -rw-r--r-- 1 abc abc 10 Oct 22 08:04 /home/share/scripts/converth264queue/test2 $ cat > /home/share/scripts/converth264queue/test3 test etst $ mktemp -p /home/share/scripts/converth264queue file.XXXXXXXX mktemp: failed to create file via template ‘/home/share/scripts/converth264queue/file.XXXXXXXX’: Permission denied $ mktemp -p /home/share/scripts/converth264queue mktemp: failed to create file via template ‘/home/share/scripts/converth264queue/tmp.XXXXXXXXXX’: Permission denied $ id uid=1000(abc) gid=100(abc) groups=100(abc),1000(users) $ ls -lnd /home/share/scripts/converth264queue/ drwxrwxr-x 1 1000 100 964 Oct 22 08:04 /home/share/scripts/converth264queue/
Irgendwelche Ideen, warum dies passieren würde?
Beachten Sie, dass mktemp im Docker von coreutils bereitgestellt wird, also keine setuid:
$ ls -ld $(which mktemp) lrwxrwxrwx 1 root root 20 Oct 20 09:09 /bin/mktemp -> ../usr/bin/coreutils $ ls -ld /usr/bin/coreutils -rwxr-xr-x 1 root root 1065928 May 1 21:44 /usr/bin/coreutils
(1) Ich würde ein besseres Gefühl für Ihre Frage bekommen, wenn Sie zeigen würden, dass * einige * Befehle mit einem vollständigen Pfadnamen funktionieren. B. `touch / home / share / scripts / converth264queue / test`,` cat> / home / share / scripts / converth264queue / test2` und sogar `` ls -ld / home / share / scripts / converth264queue``. (2) In diesem Fall wird es wahrscheinlich nicht wirklich helfen, aber wenn ein Befehl unerwartet / mysteriös ausfällt, ist es in der Regel eine gute Idee, $ echo zu lassen, um zu sehen, ob der Befehl etwas aussagt oder Ihnen einen Wert gibt Hinweis. (3) Tritt dieses Problem nur in `/ home / share / scripts / converth264queue` auf? … (Fortsetzung)
Scott vor 6 Jahren
0
(Fortsetzung)… Was haben Sie experimentiert? Wo kommt es vor und nicht vor? Die Tatsache, dass Sie es in einem Verzeichnis demonstriert haben, dessen Name 36 Zeichen lang ist (zum Beispiel neunmal so lang wie `/ tmp`), macht das Lesen der Frage schwierig (erfordert horizontales Scrollen) und macht das Kommentieren umständlich. (4) Besteht die Möglichkeit, dass "mktemp" auf Ihrem System eingestellt ist? Mach 'ls -ld $ (welches mktemp) `. (5a) "ls" ignoriert "-a", wenn Sie "-d" angeben (dh "ls -lad" entspricht "ls -ld"). (5b) "ls -n" impliziert "-l" (dh "ls" ignoriert "-l", wenn Sie "-n" angeben).
Scott vor 6 Jahren
0
Ja, der Fehlercode ist nur "1". Ich frage mich, ob die kollisionsfreie Garantie von mktemp etwas enthält, was bedeutet, dass sie einen größeren Zugriff benötigt, als über ein Docking-zugeordnetes nfs-Volume bereitgestellt werden kann.
Paul vor 6 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
3
Ubuntu Server mit GNOME Desktop Envinronment - Einstellen der Apatche-Konfigurationsdateiberechtigun...
-
2
Wie kann ich zulassen, dass Programme, die Administratorrechte benötigen, beim Start in Vista ausgef...
-
1
Windows kann während des Speicherns von chkdsk und Office nicht auf die Festplatte schreiben
-
5
Gibt es eine Möglichkeit, eine geplante Aufgabe unter Windows XP auszuführen, ohne den Benutzernamen...
-
3
Wie kann ich verhindern, dass andere Personen den Inhalt meines Heimatverzeichnisses sehen, außer de...
-
8
Wie kann ich allen Benutzern in Linux Schreibzugriff auf einen Ordner gewähren?
-
7
Löschen nicht wiederherstellbarer Dateien in Vista
-
1
Zugriff auf das ehemalige XP-Laufwerk als zweites Laufwerk unter Windows 7
-
5
Zugriff auf das alte XP-Laufwerk als zweites Laufwerk unter Windows 7 ohne Chowning
-
1
Was ist der Unterschied zwischen den Standardgruppen unter Mac OS X?