Como o useradd não está funcionando?

0

Estou tentando descobrir as torções para esse RPM que estou tentando criar. Basicamente, estou tentando fazer com que, se mark não existir no sistema, eu queira criar uma conta de usuário de marca. Eu tenho isso em um bloco %pre no meu arquivo .spec:

id mark &>/dev/null
if [ "$?" != "0" ]; then
    echo "Adding 'mark' user..."
    useradd -g $GROUP_ID \
        -s /bin/bash -d mark
fi

Agora, depois de criar o RPM e executar rpm -ivh iPackage-1.0.0-1.noarch.rpm , eu verifico a saída e vejo "Adicionando 'marca' usuário ...", mas quando executo id mark na linha de comando, recebo id: mark: No such user . Além disso, /etc/passwd também não possui uma conta de marca. Alguma idéia?

Editar: veja minha resposta. Acontece que as variáveis precisam ser definidas.

    
por Pat 08.11.2010 / 19:44

3 respostas

0

Eu sou um idiota. Eu tinha um &2>/dev/null no meu código, então não estava vendo meus erros. Depois de consertar isso, descobri que uma variável que eu estava usando não estava definida para a opção -g de useradd .

Eu editei a pergunta para demonstrar melhor o que estava fazendo.

    
por 09.11.2010 / 03:35
0

Na minha distro useradd deve ser chamado assim:

# useradd -ms /bin/bash mark

Use -m se você quiser criar o diretório pessoal (veja man useradd ).

Além disso, como Matt H disse, corrija esse espaço.

    
por 08.11.2010 / 21:25
0

useradd deve ser executado como root .

Eu não uso um Linux baseado em RPM, mas acho que seu script de pré-instalação está sendo executado como um usuário com poucos privilégios.

    
por 08.11.2010 / 20:24