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 01/10/2010, à 13:07

pec

script pour regler automatiquement des permissions sur NFS

Bonjour
Je suis un peu débutant smile et pas informaticien sad
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 ....  hmm
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 wink


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

pec a écrit :

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 ! tongue


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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 ! smile


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 hmm

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 ! sad
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 mad
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

#17 Le 27/10/2010, à 12:42

Totor

Re : script pour regler automatiquement des permissions sur NFS

pec a écrit :

De plus, est-ce que, à la fin de l'écriture d'un fichier, c'est l'événement 'close' qui sort ?
Merci

oui

incron pourrait également faire l'affaire.


-- Lucid Lynx --

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

pec a écrit :

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