[Remarque: ce Q similaire concerne le même message d'erreur bash. Il a été marqué un double de cet autre Q . Mais parce que j'ai trouvé une source très différente pour cette erreur, je répondrai à mon propre Q ci-dessous.]
Cette ligne de script bash fonctionnant précédemment
while ... do ... done <<< "$foo"
un jour a commencé à produire ce message d'erreur:
ne peut pas créer de fichier temporaire pour ici-document: autorisation refusée
bash
permissions
here-string
Vue elliptique
la source
la source
ima_policy=appraise_tcb
paramètre du noyau) avec une combinaison de/tmp
ne pas êtretmpfs
. Mais ce n'est pas vraiment un cas courant :).Réponses:
J'avais ajouté
umask 777
avant la chaîne ici. Après avoir retiré le umask, l'erreur a disparu. Donc, leçon apprise: un fichier temporaire a été créé pour une chaîne ici (<<<
), et cela est lié à un document ici (<<
), et vous devez avoir un ensemble umask approprié pour que cela fonctionne.la source
Dans mon cas, j'ai modifié les
/tmp
autorisations par défaut du répertoire (je pense que j'ai changé par erreur en 0777).La solution était de revenir à la valeur par défaut
/tmp
autorisation , qui est 1777 en octal (1 = bit collant, 7 = R + W + X).Donc en un mot
sudo chmod -R 1777 /tmp
devrait résoudre le problème.la source
-R
drapeau. Aucune raison de modifier les fichiers de tout le monde ci-dessous/tmp
pour qu'ils soient exécutables en lecture-écriture par tout le monde. Certains de ces fichiers sont sensibles à la sécurité de vos utilisateurs.mon expérience personnelle avec ce problème était avec
umask
la notation binaire, tout comme @ eliptical-view. Je suppose que l'écriture:me donnerait accès en lecture et en écriture aux fichiers que j'ai créés, qu'est-ce qui ne va pas
Après avoir changé le
umask
pour êtrel'erreur a disparu.
En fait, la notation binaire doit être comprise comme un complément binaire.
Ainsi, dans le
umask
masque ci-dessous lorsque l'on écrit0
pour le propriétaire du fichier, cet utilisateur aura un accès total aux fichiers qu'il crée. La valeur2
signifie que le 2ème bit est masqué, ce qui signifie dans ce cas, par défaut, les autres utilisateurs ne seront pas autorisés à écrire dans les fichiers créés par le propriétaire du fichier.la source
umask
, car précisément trois bits sont impliqués dans les autorisations de fichier Posix - pour le propriétaire, l'un de ses groupes et tout le monde.