[Hinweis: Dieses ähnliche Q betrifft dieselbe Bash-Fehlermeldung. Es wurde als Duplikat dieses anderen Q markiert . Da ich jedoch eine ganz andere Quelle für diesen Fehler gefunden habe, werde ich unten meine eigene Frage beantworten.]
Diese zuvor funktionierende Bash-Skriptzeile
while ... do ... done <<< "$foo"
Eines Tages wurde diese Fehlermeldung ausgegeben:
temporäre Datei für here-document kann nicht erstellt werden: Berechtigung verweigert
bash
permissions
here-string
Elliptische Ansicht
quelle
quelle
ima_policy=appraise_tcb
Kernel-Parameter) mit der Kombination/tmp
Nicht-Sein aktivierttmpfs
. Aber das ist nicht wirklich ein häufiger Fall :).Antworten:
Ich hatte
umask 777
vor der hier Zeichenfolge hinzugefügt . Nach dem Entfernen der Umask verschwand der Fehler. Lektion gelernt: Es gibt eine temporäre Datei, die für eine Here-Zeichenfolge (<<<
) erstellt wurde, und diese bezieht sich auf ein Here-Dokument (<<
), und Sie müssen eine geeignete Umask festgelegt haben, damit diese funktionieren.quelle
In meinem Fall habe ich die
/tmp
Standardberechtigungen für das Verzeichnis geändert (ich glaube, ich habe versehentlich auf 0777 geändert).Die Lösung bestand darin, die Standardberechtigung auf
/tmp
1777 in Oktal zurückzusetzen (1 = Sticky Bit, 7 = R + W + X).Kurz gesagt,
sudo chmod -R 1777 /tmp
sollte das Problem beheben.quelle
-R
Flagge. Kein Grund, die unten aufgeführten Dateien so zu ändern/tmp
, dass sie von allen gelesen, geschrieben und ausgeführt werden können. Einige dieser Dateien reagieren empfindlich auf die Sicherheit Ihrer Benutzer.Meine persönliche Erfahrung mit diesem Problem war mit der
umask
binären Notation, genau wie bei @ eliptical-view. Ich nahm das Schreiben an:würde mir Lese- und Schreibzugriff auf die von mir erstellten Dateien geben, was falsch ist
Nachdem ich das geändert
umask
habeDer Fehler ist verschwunden.
Eigentlich sollte die binäre Notation als binäres Komplement verstanden werden.
In der folgenden
umask
Maske0
hat dieser Benutzer beim Schreiben für den Dateibesitzer vollständigen Zugriff auf die von ihm erstellten Dateien. Der Wert2
bedeutet, dass das 2. Bit maskiert ist. In diesem Fall dürfen die anderen Benutzer standardmäßig nicht in die vom Dateieigentümer erstellten Dateien schreiben.quelle
umask
, da genau drei Bits an den Berechtigungen für Posix-Dateien beteiligt sind - für den Eigentümer, eine seiner Gruppen und alle anderen.