Script changement droit
Résolu
yonas108
-
yonas108 -
yonas108 -
Bonjour,
J'aimerais écrire un script linux permettant le changement de droits d'un fichier.
N'ayant que très peu de connaissances, je galère pas mal. Un peu d'aide serait la bienvenue.
Merci à tous,
Yonas108
P.S. Je sais qu'il faut utiliser les instructions ls-l et chmod mais comment les insérer dans un script avec une boucle while ?
J'aimerais écrire un script linux permettant le changement de droits d'un fichier.
N'ayant que très peu de connaissances, je galère pas mal. Un peu d'aide serait la bienvenue.
Merci à tous,
Yonas108
P.S. Je sais qu'il faut utiliser les instructions ls-l et chmod mais comment les insérer dans un script avec une boucle while ?
8 réponses
-
Bonjour,
je t'invite alors à regarde cette astuce. Un script est dispo en téléchargement, il devrait t'aider dans ta réalisation.
dyllan-
Merci pour le lien Dyllan.
Cependant, j'ai un peu de mal à appliquer à ce que je veux faire.
Que dites-vous de ce script ?
#!/bin/bash
ls-l fichier
while ls-l fichier ....
do chmod a+rw fichier
exit 0;
Merci,
Yonas108- hum ... il faut d'abord trouver le fichier avant de lui attribuer des droits. Enfin ce n'est qu'une suggestion sinon je ne vois pas comment tu veux t'y prendre :
echo " Quel est le fichier ou répertoire que vous souhaitez rechercher ?"
read nom_fic
echo -e "\033[37m Résultat de votre recherche :\033[00m"
find /* -name $nom_fic
Ensuite tu balances les droits que tu souhaites attribuer. Une valeur X que tu lis et applique sur le fichier / répertoire précédemment trouvé.
PS : j'ai repris le code sur mon script posté dans l'astuce.
dyllan
-
-
En fait je voudrais tester le fichier spécifié. Si les droits ne sont pas a+rw (écriture et lecture pour tout le monde) alors changer ces droits.
Je pense maintenant qu'un if sera plus approprié :
#!/bin/bash
ls-l fichier
if ls-l fichier != a+rw
then do chmod a+rw fichier
Qu'en pensez-vous ? -
Ok d'accord mais comment rentre tu le fichiers que tu souhaites vérifier ?
dyllan -
Effectivement.
Donc je rajoute une ligne pour demander le fichier.
#!/bin/bash
echo " Quel est le fichier ou répertoire que vous souhaitez rechercher ?"
read fichier
ls-l fichier
if ls-l fichier != a+rw
then do chmod a+rw fichier
exit
Cela te paraît correct?
Je ne suis pas sûr que != fonctionne pour ce genre de test
Merci,
Yonas108 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
#!/bin/bash echo " Quel est le fichier ou répertoire que vous souhaitez rechercher ?" read fichier if [ "$(stat -c %a ${fichier})" -lt "666" ] then chmod a+rw "${fichier}" fi exit:-))
-
Merci Jipicy !
Cependant, je ne comprend pas la syntaxe suivante if [ "$(stat -c %a ${fichier})" -lt "666" ].
Quelle est la différence entre ls-l et stat -c%a -lt ?
Merci,
Yonas108 -
stat -c %a fichier affiche les droits en octal de fichier
Voir man stat pour tous les détails.
if [ "$(commande)" -lt "nnn" ] teste ( [...] )que le résultat de "$(commande)" soit inférieur "-lt" (lether than = inférieur à) au chiffre fourni "nnn"
On aurait pu l'écrire aussi comme suit :if test "$(commande)" -lt "nnn"
;-))
-