Criando um script bash funcional que cria automaticamente usuários admin no linux

0

O script abaixo é o que eu já tentei, mas ele ainda me pediu a senha do usuário e outras informações quando ele foi executado.

#!/bin/bash

PASSWORD="somepassword"
USERNAME="default"

if id -u "$USERNAME" >/dev/null 2>&1; then
    userdel -r -f $USERNAME
    adduser --disabled-password --gecos "" $USERNAME
    usermod -a -G sudo $USERNAME
    echo $USERNAME:$PASSWORD | chpasswd

else
    adduser $USERNAME
    adduser --disabled-password --gecos "" $USERNAME 
    usermod -a -G sudo $USERNAME
    echo $USERNAME:$PASSWORD | chpasswd
fi
    
por answerSeeker 09.02.2017 / 23:35

2 respostas

0

Acontece adduser suga se você tentar usá-lo em um script autônomo. Acabei usando o bom e antigo useradd , que corrigiu completamente meu script abaixo.

#!/bin/bash

PASSWORD="somepassword"
USERNAME="default"

if id -u "$USERNAME" >/dev/null 2>&1; then
    userdel -r -f $USERNAME
    useradd -m -p $PASSWORD -s /bin/bash $USERNAME
    usermod -a -G sudo $USERNAME
    echo $USERNAME:$PASSWORD | chpasswd

else
    useradd -m -p $PASSWORD -s /bin/bash $USERNAME
    usermod -a -G sudo $USERNAME
    echo $USERNAME:$PASSWORD | chpasswd
fi
    
por 10.02.2017 / 00:25
0

Aviso : é uma péssima ideia deixar uma senha criptografada pela ONU dentro de um script. Se você ainda optar por fazê-lo, pelo menos, altere as permissões do arquivo para 600 por raiz. Isso irá protegê-lo contra ataques simples.

Então:

O primeiro problema que vejo é que você está chamando adduser duas vezes, na outra parte.

Isso acionará uma primeira execução que faz todas as perguntas.
A segunda chamada funciona bem.

Além disso, existem muitas opções comuns entre as partes then e else, o script pode ser escrito assim:

#!/bin/bash

$PassWord="somepassword"
UserName="default"

if id -u "$UserName" >/dev/null 2>&1; then
    userdel -r -f "$UserName"
fi

adduser --disabled-password --gecos "" "$UserName"
userdir=/home/"$UserName"
[[ -d $userdir ]] || mkdir "$userdir"   # only needed for system users.
                                        # which usually do not have a password.
usermod -a -G sudo "$UserName"
echo "$UserName:$PassWord" | chpasswd
    
por 10.02.2017 / 04:12