adduser provoque des messages étranges lorsqu'il est appelé depuis le script preinst

0

J'ai un paquet .deb dans lequel j'ai un script preinst qui exécute le programme adduser au cas où un certain utilisateur ne serait pas déjà présent sur le système.

$(id -u {username} > /dev/null 2>&1)
if [ $? -eq 1 ];
then
    echo "Adding user"
    $(adduser --group {groupname})
    $(adduser --disabled-password --ingroup {groupname} --no-create-home --system {username})
fi
exit 0

Lorsque le script preinst est exécuté dans le cadre du processus d'installation, l'utilisateur et le groupe sont créés comme il se doit, mais les lignes de sortie étranges suivantes proviennent de la commande adduser:

Adding user
/var/lib/dpkg/tmp.ci/preinst: 12: /var/lib/dpkg/tmp.ci/preinst: Adding: not found
/var/lib/dpkg/tmp.ci/preinst: 13: /var/lib/dpkg/tmp.ci/preinst: Adding: not found

Que signifient ces lignes et est-ce quelque chose que je devrais résoudre?

ThaMe90
la source

Réponses:

2

Comme vous l'avez fait $(adduser ..)au lieu de simplement adduser .., vous appliquez une substitution de commande et cette ligne est remplacée par le résultat de cette commande. Donc, si adduserproduit une sortie de Adding user ..., alors le shell va essayer de s’exécuter en Adding user ...tant que commande. Au lieu de cela, faites:

id -u ${username} > /dev/null 2>&1
if [ $? -eq 1 ];
then
    echo "Adding user"
    adduser --group ${groupname}
    adduser --disabled-password --ingroup ${groupname} --no-create-home --system ${username}
fi
exit 0
muru
la source
Je semble toujours oublier la substitution de commande ...
ThaMe90