#1 Le 02/05/2021, à 21:03
- abecidofugy

Un script pour consigner les droits des fichiers et répertoires
Salut,
Je cherche à consigner les droits des fichiers et répertoires pour un site en prod car je dois appliquer un script officiel de Drupal pour corriger les erreurs de droits, et je ne voudrais pas le faire à l’aveuglette, et que ça soit réversible qui ça ne remplirait pas sa mission correctement.
Je voudrais donc que ça enregistre un fichier texte, une suite de chmod.
Exemple : le script lit qu’un fichierX.js a un chmod 755, il faudrait donc qu’une ligne soit rajouté au fichier texte :
chmod 444 config.php
chmod 755 monprécédentfichier.css
chmod 755 fichierX.jsDu coup, je n’aurais plus qu'à éditer le fichier texte résultat et rajouter l’entête bash si je voulais réappliquer les droits précédents.
Merci de votre aide, je suis une bille en bash…
PS : je ne crois pas que ça existe déjà sur le net, j’ai lancé une recherche en ce sens.
[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées.
Agence de communication en Alsace · web · print
Hors ligne
#2 Le 02/05/2021, à 21:18
- pingouinux

Re : Un script pour consigner les droits des fichiers et répertoires
Bonjour,
Pour des fichiers non cachés situés dans le répertoire courant :
stat -c 'chmod %a "%n"' *Commande à adapter pour les autres cas.
Hors ligne
#3 Le 02/05/2021, à 21:28
- MicP
Re : Un script pour consigner les droits des fichiers et répertoires
Bonjour
Le contenu du script chmodHist.sh
#!/bin/bash
# $1 est la nouvelle valeur octale des attributs qui sera appliquée au fichier
# $2 est le nom du fichier dont les attributs seront modifiés
echo "chmod $(stat --format "%a %n" "$2")" >> chemin/nomDuFichierHistorique.sh
chmod $1 "$2"Ce qui donne :
michel@debsid:~$ stat --format "%a" .bashrc # Je visualise les attributs actuels de mon fichier .bashrc
755
michel@debsid:~$ ./chmodHist.sh 700 .bashrc # Je modifie les attributs pour 700
michel@debsid:~$ stat --format "%a" .bashrc # Pour vérifier, je visualise les attributs de mon fichier .bashrc
700
michel@debsid:~$ source chemin/nomDuFichierHistorique.sh # Je restaure les attributs du fichier
michel@debsid:~$ stat --format "%a" .bashrc # Pour vérifier, je visualise les attributs de mon fichier .bashrc
755
michel@debsid:~$ Dernière modification par MicP (Le 02/05/2021, à 21:47)
Hors ligne
#4 Le 02/05/2021, à 22:09
- Watael

Re : Un script pour consigner les droits des fichiers et répertoires
pourquoi "source" plutôt que d'exécuter ?
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 03/05/2021, à 06:48
- MicP
Re : Un script pour consigner les droits des fichiers et répertoires
Bonjour
C'est parce que je n'avais pas encore créé le fichier chemin/nomDuFichierHistorique.sh
ce qui fait qu'il ne pouvait pas être exécutable.
Dernière modification par MicP (Le 03/05/2021, à 08:33)
Hors ligne