2009-08-24 12 views
3

Je travaille actuellement sur un paquet Debian pour un programme interne. Dans le cadre de ce package, j'ai besoin de créer l'utilisateur qui exécute la plupart des fonctionnalités du programme. Je fais cela dans le script postinst. Le script postinst peut être exécuté plusieurs fois (lors de la mise à niveau, par exemple), il est donc important de ne pas tenter de créer l'utilisateur à chaque fois. Par conséquent, comment puis-je m'assurer que l'utilisateur est créé seulement la première fois que le script est exécuté, sans l'affecter lors des exécutions ultérieures du script?Assurer l'existence d'un utilisateur sur un système Debian GNU/Linux

Répondre

2

Vous n'avez pas besoin de savoir si l'utilisateur existe ou non. adduser (8) ne retournera pas une erreur si l'utilisateur existe déjà avec les mêmes paramètres. De la page man:

EXIT VALUES 
     0  The user exists as specified. This can have 2 causes: The user 
       was created by adduser or the user was already present on the 
       system before adduser was invoked. Invoking adduser a second 
       time with the same parameters as before also returns 0. 
1

comme Mentionné avant de pouvoir utiliser la commande « id », si vous souhaitez obtenir tout l'utilisateur dans un système, vous pouvez utiliser:

getent passwd 

qui liste tous les les utilisateurs sur le système (même s'ils se trouvent sur une base de données distante comme ldap ou nis et etc ...)

+0

Bonne réponse. Probablement plus robuste que l'identifiant. –

Questions connexes