Como adicionar usuários ao Linux através de um script de shell

3

O script de shell que tenho que escrever tem que criar novos usuários e atribuí-los automaticamente aos grupos. Este é o meu código até agora:

echo -n "Enter the username: "
read text
useradd $text

Consegui obter o script de shell para adicionar o novo usuário (verifiquei a entrada /etc/passwd ). No entanto, tentei e não consigo obter um passwd (inserido pelo usuário) para o usuário recém-criado antes. Se alguém pudesse me ajudar a atribuir uma senha ao usuário recém-criado, seria de muita ajuda.

    
por Tech Check 11.12.2015 / 11:14

2 respostas

4

Saída de "man 1 passwd":

--stdin
      This option is used to indicate that passwd should read the new
      password from standard input, which can be a pipe.

Para responder à sua pergunta, use o seguinte script:

echo -n "Enter the username: "
read username

echo -n "Enter the password: "
read -s password

adduser "$username"
echo "$password" | passwd "$username" --stdin

Eu usei read -s para a senha, por isso ela não será exibida durante a digitação.

Editar: Para usuários do Debian / Ubuntu -stdin não funciona. Em vez de passwd use chpasswd :

  echo $username:$password | chpasswd
    
por 11.12.2015 / 11:29
0
#!/bin/bash
echo "Enter username: "
read username
useradd "$username"
echo "temp4now" | passwd --stdin "$username"
chage -d 0 "$username"
    
por 10.02.2017 / 09:37