Introdução da entrada do usuário automaticamente através do script bash? [duplicado]

2

Estou criando um script bash que cria um usuário e define uma senha. Quando o comando "passwd user" é executado, é necessário que o usuário insira uma senha e interrompa meu script.

Existe alguma maneira de preencher a entrada do usuário sem que o usuário intervenha?

#!/bin/bash

yum -y update
adduser test-user
passwd test-user
"Password here?"
    
por user3024130 19.11.2014 / 17:27

2 respostas

0

Método 1 - usando passwd

Você pode fazer algo assim por meio de um script:

echo -n "$passwd" | passwd "$uname" --stdin

Onde a senha que você deseja definir é $passwd e o usuário para o qual você deseja defini-la é $uname .

Método 2 - usando useradd

Você também pode fornecê-lo para useradd diretamente:

useradd -n -M -s $shell -g $group -d "/home/$homedir" "$uname" -p "$passwd"

OBSERVAÇÃO: Supondo que você esteja em uma distro baseada no Red Hat, como o CentOS ou RHEL, no método 2, já que seu exemplo mostra os comandos yum . A opção -n , por exemplo, está em versões mais antigas de useradd :

-n  A group having the same name as the user being added to the system 
    will be created by default. This option will turn off this
    Red Hat Linux specific behavior. When this option is used, users by 
    default will be placed in whatever group is specified in
    /etc/default/useradd. If no default group is defined, group 1 will be
    used.

versões mais recentes de useradd agora têm a opção desta forma nas distribuições Red Hat e não Red Hat:

-N, --no-user-group
    Do not create a group with the same name as the user, but add the 
    user to the group specified by the -g option or by the GROUP 
    variable in /etc/default/useradd.

Então você poderia usar este comando para outras distros:

useradd -N -M -s $shell -g $group -d "/home/$homedir" "$uname" -p "$passwd"
    
por 19.11.2014 / 18:00
1

Esta é uma idéia muito ruim , mas você pode passar a senha na entrada padrão :

passwd --stdin test-user <<< "Password here?"
    
por 19.11.2014 / 17:32