← retour aux snippets

install: créer arborescences avec permissions

Installer des fichiers en créant les dossiers manquants, avec droits et owner corrects, atomiquement.

bash filesystem #install#permissions#deploy

objectif

Déployer des binaires/configs avec propriétaires et permissions exactes sans mkdir && cp && chmod manuels.

code minimal

# installe le binaire avec mode 0755 et propriétaire app:app
install -D -m 0755 -o app -g app ./build/mycli /usr/local/bin/mycli

utilisation

# installer une config 0640 avec owner root:app
install -D -m 0640 -o root -g app ./conf/app.conf /etc/myapp/app.conf

# copier un répertoire d'assets (préférer rsync pour arbres profonds)
install -d -m 0755 /var/lib/myapp/assets
cp -a ./assets/. /var/lib/myapp/assets/

variante(s) utile(s)

# tmp + mv atomique pour remplacements sensibles
tmp="$(mktemp)"; install -D -m 0644 new.service "$tmp" && mv -f "$tmp" /etc/systemd/system/new.service

notes

  • install -D crée les dossiers parents automatiquement.
  • utilisez -o/-g seulement si root; sinon laissez le système.