devildant Posté(e) le 22 juin 2014 Partager Posté(e) le 22 juin 2014 Bonjour a toutes et a tous, voila cela fait un moment que je cherche sans pour autant trouvé la solution, j'aimerai fait en sorte que lorsque je finalise la création d'un user un script soit appeler automatiquement pour créer des dossier spécifique dans le home de celui ci. je ne pense pas être le seul a vouloir faire se genre de chose et je pense que ce sujet a déjà été abordé mais je n'arrive pas a mettre la main dessus. je sollicite donc votre aide 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 22 juin 2014 Partager Posté(e) le 22 juin 2014 (modifié) j'aimerai fait en sorte que lorsque je finalise la création d'un user un script soit appeler automatiquement pour créer des dossier spécifique dans le home de celui ci. Un peu de "reverse engineering" de la commande "synouser" m'a permis de te trouver une solution Attention: je n'ai pas pris le temps de m'assurer si c'était documenté et donc ne saurais te garantir que ça reste fonctionnel en cas d'upgrade de DSM (mais j'ai bon espoir malgré tout). Mettre le script dans le dossier "/usr/local/libexec/user_set". Son nom est sans importance Le rendre exécutable ("chmod 755" fonctionne) Lui appliquer le squelette suivant: #!/bin/ash case $1 in --sdk-mod-ver) # important sinon la partie "--post" ne sera pas invoquée echo 1.0 ;; --post) # Cette partie sera invoquée *apres* que le compte ait été créé # Les informations sur ce dernier sont communiquées # via des variables d'environnement. # Parmi celle-ci, celles ci-dessous me semble utiles dans ton cas: # $UID_1 # $USER_NAME_1 # $RESULT (vaut 0 si la création du compte à réussi) # mettre tes commandes en dessous de cette ligne ;; esac exit Note: lors de son exécution, la sortie standard et la sortie d'erreur sont redirigées. Par conséquent faudra utiliser un fichier de log de sortie ou la commande "logger" en phase de debug pour les diagnostics. Modifié le 22 juin 2014 par CoolRaoul 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
devildant Posté(e) le 22 juin 2014 Auteur Partager Posté(e) le 22 juin 2014 Un peu de "reverse engineering" de la commande "synouser" m'a permis de te trouver une solution Attention: je n'ai pas pris le temps de m'assurer si c'était documenté et donc ne saurais te garantir que ça reste fonctionnel en cas d'upgrade de DSM (mais j'ai bon espoir malgré tout). Mettre le script dans le dossier "/usr/local/libexec/user_set". Son nom est sans importance Le rendre exécutable ("chmod 755" fonctionne) Lui appliquer le squelette suivant: #!/bin/ash case $1 in --sdk-mod-ver) # important sinon la partie "--post" ne sera pas invoquée echo 1.0 ;; --post) # Cette partie sera invoquée *apres* que le compte ait été créé # Les informations sur ce dernier sont communiquées # via des variables d'environnement. # Parmi celle-ci, celles ci-dessous me semble utiles dans ton cas: # $UID_1 # $USER_NAME_1 # $RESULT (vaut 0 si la création du compte à réussi) # mettre tes commandes en dessous de cette ligne ;; esac exit Note: lors de son exécution, la sortie standard et la sortie d'erreur sont redirigées. Par conséquent faudra utiliser un fichier de log de sortie ou la commande "logger" en phase de debug pour les diagnostics. Merci beaucoup je vais regarder ça le plus vite possible et sinon comment tu a décrypté le script synouser? je suis preneur cela peux toujours servir 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
CoolRaoul Posté(e) le 23 juin 2014 Partager Posté(e) le 23 juin 2014 comment tu a décrypté le script synouser? "synouser" n'est pas un script (ce qui aurait simplifié mon enquète) mais un binaire. Pour espionner son comportement j'utilise un outil qui n'est pas nativement inclus dans DSM: strace (que je me suis cross-compilé à l'aide de la toolchain synology). Il permet de lancer tracer tous les appels systèmes (et optionnellement de librairies) d'une commande. Ca m'a permis de constater que synouser enumérait (entre autre choses) les fichiers contenus dans "/usr/local/libexec/user_set" exécutait chacun d'eux (via "/bin/sh -c") avec le parametre "--sdk-mod-ver" Me suis concocté un petit script de test et avec un peu de présévérance j'ai pu comprendre le mécanisme. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
devildant Posté(e) le 23 juin 2014 Auteur Partager Posté(e) le 23 juin 2014 Oki bon je regarderai si je peux me concocter un truck du même style, merci pour les infos. Faudrai que je trouve a l'occasion comment decompiler les cgi mais ca c une autre histoire Je vais faire une demande d'evolution a syno des que j'aurai le temps pour géré graphiquement l'ajout de script en fin de creation d'user, ca a peux d'importance pour un particulier mais pour une boite ca peux etre interessant. En tout cas un grand merci 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.