← retour aux snippets

heredoc: créer un fichier avec umask contrôlé

Écrire un fichier de config via here-doc avec permissions sûres et écriture atomique.

bash filesystem #heredoc#umask#atomic

objectif

Générer un fichier sans éditeur, avec des permissions minimales et sans race condition.

code minimal

umask 077
tmp="$(mktemp)"
cat > "$tmp" <<'CONF'
[server]
listen = 127.0.0.1:9000
CONF
mv -f "$tmp" /etc/app.conf

utilisation

# recharger le service après mise à jour
sudo systemctl reload app.service

variante(s) utile(s)

# écrire dans le dossier de l'utilisateur
umask 077; tmp="$(mktemp)"; cat > "$tmp" <<'EOF'
secret=...
EOF
mv -f "$tmp" "$HOME/.app/secret.conf"

notes

  • umask 077 restreint à rw-------.
  • mv sur le même FS garantit l’atomicité.