Je fais un synchro avec unison,ça marche très bien.Pour être sur des droits et permission sur le serveur distant,j’aimerai re-passer pour les droits et permissions sur chaque répertoire au lieu que chaque utilisateur a l’accès sur tous les répertoire. Donc j’ai crée un script qui modifie les droits et permission
chgrp user $projet
chgrp -R user "$projet/ref"
chmod -R 640 "$projet/ref/ta"
chmod -R 640 "$projet/ref/te"
done
exit 0
dans le /home/user/taf nous avons BAC_1 BAC_2 BAC_3 BAC_4
But : C’est de changer les droits et groupe de chaque BAC_*
Apres le lancement de ce script,j’ai ceci
ls: impossible d’accéder à racine: Aucun fichier ou dossier de ce type
chgrp: impossible d’accéder à « racine »: Aucun fichier ou dossier de ce type
chgrp: impossible d’accéder à « racine/ref »: Aucun fichier ou dossier de ce type
chmod: impossible d’accéder à « racine/ref/ta »: Aucun fichier ou dossier de ce type
chmod: impossible d’accéder à « racine/ref/te »: Aucun fichier ou dossier de ce type
J’ai passé pas mal de temps pour chercher des solutions,mais rien de positif.Je compte sur vous les amis.
[code]#!/bin/bash
racine=’/home/user/taf’
test=$(ls “$racine” |grep BAC) # c’est là il manquait le $
projet="/racine/$test" # et il y en avait un en trop là
for projet in racine ; do
chgrp user "$projet"
chgrp -R user "$projet/ref"
chmod -R 640 "$projet/ref/ta"
chmod -R 640 "$projet/ref/te"
done
exit 0[/code]
for “$projet” in “$racine” ; do
chgrp user "$projet"
chgrp -R user "$projet/ref"
chmod -R 640 "$projet/ref/ta"
chmod -R 640 "$projet/ref/te"
done
exit 0
Après j’ai ce résultat :
./test.sh: ligne13: « “$projet” » : identifiant non valable
Est-ce le variable projet n’est pas bien définit?
Il y en a mais,je ne veux pas l’utiliser parce que certains docs que je synchronise ont de grandes importance et que certains collègues n’ont pas les droits ni permissions de lecture ou ecritures.
for projet in “$racine” ; do # pas de $ dans projet ici comme dans les déclarations de variables
chgrp user "$projet"
chgrp -R user "$projet/ref"
chmod -R 640 "$projet/ref/ta"
chmod -R 640 "$projet/ref/te"
done
exit 0[/code]