#1 Le 01/10/2010, à 13:07
- pec
script pour regler automatiquement des permissions sur NFS
Bonjour
Je suis un peu débutant et pas informaticien
Je voudrai juste pouvoir réaliser cela :
J'ai un dossier NFS partagé sur un serveur où plusieurs utilisateurs de plusieurs PC peuvent mettre des fichiers. J'aimerai (pour éviter de faire un cron toute les 30s) que les droits soient automatiquement appliqués aux fichiers qui sont mis dans ce dossier. (chmod -R 775 /le_chemin_du_dossier_partagé ... en root!)
Ceci pour cette raison : avec les droits automatique des fichiers créés par les différents utilisateurs (umask c'est ça?), il y en a qui arrivent avec uniquement les droits de lecture pour le groupe. Le problème est que si un autre utilisateur veux virer le fichier, pas possible! Il faut donc le faire du PC qui l'a créé ou lancer une commande sur le serveur .... pffff
Je voulais donc savoir si il est possible de "détecter" l'écriture d'un fichier dans ce dossier et de pouvoir lancer un chmod récursif sur tout le dossier à la suite.
J'espère avoir été clair ....
Merci
Dernière modification par pec (Le 27/10/2010, à 11:55)
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne
#2 Le 01/10/2010, à 13:16
- SnoopySnoopy
Re : script pour regler automatiquement des permissions sur NFS
Bonjour
Je ne vais pas t'apporter de réponse car j'ai cherché suffisamment longtemps pour finir pas comprendre que pour gérer finement les droits des utilisateurs pour accéder à un serveur, il vaut mieux utiliser ssh.
En NFS je ne suis même pas convaincu que ce soit "raisonnablement" possible.
Salutations
Asus P8P67 Pro ou Asus TP300LD / Ubuntu, Palette Wacom Pro, Écran à large Gamut.
Hors ligne
#3 Le 01/10/2010, à 13:22
- pec
Re : script pour regler automatiquement des permissions sur NFS
Le problème n'est pas tant la gestion des droits sous NFS.
Le problème serai le même si je voulais lancer un script a chaque action d'écriture dans n'importe quel dossier (NFS ou pas)
Merci quand même
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne
#4 Le 01/10/2010, à 14:01
- Totor
Re : script pour regler automatiquement des permissions sur NFS
Je voulais donc savoir si il est possible de "détecter" l'écriture d'un fichier dans ce dossier et de pouvoir lancer un chmod récursif sur tout le dossier à la suite.
Normalement, inotify le fait mais je sais pas si il en est capable avec un montage nfs (normalement oui)
-- Lucid Lynx --
Hors ligne
#5 Le 01/10/2010, à 14:19
- pec
Re : script pour regler automatiquement des permissions sur NFS
Merci, ça me parai cool ça !
Je vais demander à un pote informaticien de me faire ça parce que là .... le code, j'y comprends rien !
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne
#6 Le 01/10/2010, à 19:28
- nesthib
Re : script pour regler automatiquement des permissions sur NFS
j'allais proposer inotify, j'ai fait un embryon de script à ce sujet.
Sinon tu as aussi les ACL
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#7 Le 07/10/2010, à 13:49
- pec
Re : script pour regler automatiquement des permissions sur NFS
Re --
Merci nesthib pour cet embryon de script.
Par contre je ne sais pas pourquoi mais ça ne marche pas chez moi. J'ai peu-être mal adapté le script :
#!/bin/sh
DOSSIER_SURVEILLE='/media/disque/echanges'
inotifywait -m -r --format '%w%f' -e create -e moved_to "${DOSSIER_SURVEILLE}" $ | while read LINE
do
setfacl -m g::rw "${LINE}"
done
Comme ça, à chaque fichier qui est écrit dans le dossier "echanges", les droits du groupe entier sont automatiquement mis en écriture.
Par contre, ça marche pas !
Même avec chmod, c'est pareil
Merci pour l'aide
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne
#8 Le 07/10/2010, à 13:51
- Totor
Re : script pour regler automatiquement des permissions sur NFS
inotify génère t'il des événements ?
pour le savoir, remplace setfacl -m g::rw "${LINE}" par une trace (du style echo "$LINE")
-- Lucid Lynx --
Hors ligne
#9 Le 07/10/2010, à 14:17
- pec
Re : script pour regler automatiquement des permissions sur NFS
tout a fait !
j'ai mis un echo et ça me sort l'emplacement du fichier
je précise que la commande setfacl fonctionne bien si je la lance à part.
Dernière modification par pec (Le 07/10/2010, à 14:19)
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne
#10 Le 07/10/2010, à 14:38
- Totor
Re : script pour regler automatiquement des permissions sur NFS
oO
Les fichiers sont-ils toujours ouverts ?,
n'y aurait-il pas un pb de synchro nfs ?
-- Lucid Lynx --
Hors ligne
#11 Le 07/10/2010, à 14:52
- pec
Re : script pour regler automatiquement des permissions sur NFS
Fichiers "ouverts" ?
Non, les fichiers sont toujours fermés.
Quel type de prb de synchro nfs ?
Je ne pense pas car si je lance la commande seule, ça marche.
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne
#12 Le 07/10/2010, à 15:05
- pec
Re : script pour regler automatiquement des permissions sur NFS
Bon, en définitive, si je ne trouve pas cette solution plus parcimonieuse, je ferai un cron avec "chmod -R 775" du dossier en question toutes les minutes.
C'est pas très "économe" mais bon .....; ça fonctionne !
Merci pour ceux qui trouvent la solution au problème.
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne
#13 Le 11/10/2010, à 13:27
- pec
Re : script pour regler automatiquement des permissions sur NFS
Me revoilà !!
J'ai trouvé la solution et en fait part au cas où.
Le script suivant marche. Je l'ai mis dans /etc/init.d et le lance au démarrage avec la commande
sudo update-rc.d script-inotify start 99 2 .
le "echo" était pour tester et voir si inotify renvoyait quelque chose.
le sleep c'est pour les gros fichiers étant donné que dès le début d'écriture du fichier, inotify donne les infos mais si la commande chmod se lance avant la fin de l'écriture du fichier, elle n'a pas d'effet. J'ai mis 2 minutes pour être sûr, dans tout les cas, j'ai pas besoin que ça soit instantané.
Au final, chaque fichier écrit dans tout les sous-dossiers de mon dossier surveillé, sauf un, aura les droits en écriture pour le groupe affectés automatiquement quelque soit l'utilisateur qui aura copié le fichier.
#!/bin/bash
# CONFIGURATION
DOSSIER_SURVEILLE='/media/mon_dossier_partagé'
EXCLU='/media/mon_dossier_partagé/un_sous_dossier_perso_qui_ne_doit_pas_être_surveillé'
# MAIN
inotifywait -m -r --format '%w%f' -e create "${DOSSIER_SURVEILLE}" @"${EXCLU}" $ | while read LINE
do
sleep 2m ;
echo "Fichier créé: '$LINE'"
chmod 770 "$LINE" ;
done
Oufff ..... que c'est difficile quand on a pas appris l'informatique !
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne
#14 Le 11/10/2010, à 13:58
- Totor
Re : script pour regler automatiquement des permissions sur NFS
Bonjour,
Pourquoi ne mets-tu pas un événement 'close' plutôt que 'create' ?
Ainsi, ça t'éviteras d'attendre 2m ? Et attendre 2 mins, tu peux passer à côté de certains événements (création de fichier)
après ça risque aussi de changer les dates du fichiers
autre solution :
inotifywait -m -r --format '%w%f' -e create "${DOSSIER_SURVEILLE}" @"${EXCLU}" $ | while read LINE
do
{ sleep 2m ;
echo "Fichier créé: '$LINE'"
chmod 770 "$LINE" ; } &
done
-- Lucid Lynx --
Hors ligne
#15 Le 12/10/2010, à 15:56
- Alextazy
Re : script pour regler automatiquement des permissions sur NFS
Juste un petit tour du côté de "incrontab" simplifierait les choses il me semble... moi je l'utilise avec un dossier standart partagé entre utilisateurs... mais je ne sais pas pour le NFS.
Hors ligne
#16 Le 27/10/2010, à 11:36
- pec
Re : script pour regler automatiquement des permissions sur NFS
Hello
Je reviens sur ce script car y'a pas mal de problèmes à l'utilisation.
Du genre, création nouveau dossier suivi du changement de nom, si tout ça est dans le temps du "sleep", l'application des droits ne se fait pas car le chemin d'accès a changé .... forcément !
Du coup, j'aimerai savoir si il y a un évènement du type "FIN d'écriture du fichier", ce qui serai top car tout les changements de droits et de propriétaires se feraient une fois que le fichier est entièrement écrit .... et pas AVANT
Sur ce point de vue, totor avait raison mais je me demande si mettre l'événement 'close' plutôt que 'create' ne va pas être un peu lourd à l'usage (si la commande est lancée a chaque fermeture de fichier ...... pffff)
De plus, est-ce que, à la fin de l'écriture d'un fichier, c'est l'événement 'close' qui sort ?
Merci
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne
#18 Le 27/10/2010, à 13:19
- pec
Re : script pour regler automatiquement des permissions sur NFS
Merci totor, j'ai essayé de mettre IN_CLOSE_WRITE et c'est pas mal.
Cependant, le problème d'incron c'est que ça ne gère pas en récursif si je ne me trompe pas ???
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne
#19 Le 27/10/2010, à 14:42
- Totor
Re : script pour regler automatiquement des permissions sur NFS
Cependant, le problème d'incron c'est que ça ne gère pas en récursif si je ne me trompe pas ???
à vrai dire, je n'ai jamais utilisé incron mais je n'ai pas le sentiment qu'il se soit pas récursif. Ce serait d'ailleurs étonnant puisqu'il se base sur les même librairies ...
-- Lucid Lynx --
Hors ligne
#20 Le 27/10/2010, à 15:42
- pec
Re : script pour regler automatiquement des permissions sur NFS
Je crois que si au vu de cette page
incrond is currently not resistent against looping. Recursive monitoring (whole subtrees) has not been implemented yet.
LINUX est à une jolie fille ce que Windows est à une prostituée. La jolie fille, il faut la séduire et la comprendre pour obtenir ce que l'on désire, la prostituée , il suffit de la payer, et surtout bien se protéger.
Hors ligne