adduser causa mensagens estranhas quando chamado do script preinst

0

Eu tenho um pacote .deb no qual tenho um script preinst que executa o programa adduser no caso de um determinado usuário ainda não estar presente no sistema.

$(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

Quando o script preinst está sendo executado como parte do processo de instalação, o usuário e o grupo são criados como deveriam, mas vejo as seguintes linhas de saída estranhas vindas do comando 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

O que essas linhas significam e é algo que eu devo resolver?

    
por ThaMe90 08.12.2014 / 13:16

1 resposta

2

Como você fez $(adduser ..) em vez de simplesmente adduser .. , aplica a substituição de comando e essa linha é substituída pela saída desse comando. Portanto, se adduser produzir uma saída de Adding user ... , o shell tentará executar Adding user ... como um comando. Em vez disso, faça:

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
    
por muru 08.12.2014 / 13:22