Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/05/2021, à 22: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.js

Du 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.

Hors ligne

#2 Le 02/05/2021, à 22: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, à 22: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, à 22:47)

Hors ligne

#4 Le 02/05/2021, à 23:09

Watael

Re : Un script pour consigner les droits des fichiers et répertoires

pourquoi "source" plutôt que d'exécuter ?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 03/05/2021, à 07: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, à 09:33)

Hors ligne