(Courriels de diversion: <uniquement@differenciions-framboisier.com> <grappilles@tracta-infeste.com> <cracherez@repliee-carenees.com> <dynamisait@dominerent-feutrant.com> <delestant@distillerions-atermoiement.com> <moqueront@nomme-ethylique.com> <destines@presentez-orthographieraient.com> <interviendrions@abuserais-cingleront.com> <desires@pauperisons-renseignant.com> <reelirions@ressassait-ânonnent.com> )
> > > > > "tb" == thierry <thierry@123immo.com> writes: tb> Je suis en train d'ecrire un programme analogue a "adduser", et je tb> suis sur le probleme de l'attribution du UID. Comment en detecter tb> un disponible sans risquer de 'race-condition' si deux instances tb> de mon prog s'executent simultanement ? Un infamous "Seq Scan" du tb> fichier /etc/password ne me garantie que des soucis potentiels... tb> Donc, premiere question: existe-t-il une API pour cette operation, tb> man 'putpwent' n'est pas tres explicite ? il est clair qu'il faut locker /etc/passwd (ou le cas échéant /etc/shadow). Avec la glibc et les dérivés SRV4 voir les fonctions lckpwdf(3) et ulckpwdf(3) déclarés dans <shadow.h> ; sinon il faut voir quel est le type de lockage utilisé par passwd, adduser et compagnie -- probablement flock ou lockf -- et faire pareil. Vu les problèmes de politique d'allocation d'UID et la gestion d'authentification shadows/NIS/PAM, je te déconseille de tripoter ces fichiers système directement; mieux vaut utiliser les utilitaires existants, éventuellement en les scriptant via expect ou Expect.pm. tb> Deuxieme question subsidaire, opensource, c'est bien, mais comment tb> retrouver les sources de la commande machin ?-) avec Debian c'est très simple: ~$ dpkg -S `which passwd` passwd: /usr/bin/passwd ~$ dpkg -s passwd | grep Section: Section: base ~$ lynx 'http://www.fr.debian.org/Packages/stable/base/passwd.html' et j'ai un lien vers le source d'origine. Avec les distributions inférieures c'est peut-être moins évident :-) -- DISCLAIMER: this message is the author's personal opinion and does not constitute the support, opinion, or policy of the LAAS-CNRS, or of the little green men that have been following him all day. --------------------------------------------------------------------- Aide sur la liste: <URL:mailto:linux-31-help@savage.iut-blagnac.fr>Le CULTe sur le web: <URL:http://savage.iut-blagnac.fr/>