
Tengo el siguiente script bash, cada vez que quiero crear un usuario necesito copiar este script al servidor y ejecutarlo.
¿Hay algo que podamos hacer para que este script obtenga las IP de un archivo hosts.txt (ejecutando el script en varios servidores) una por una y cree un usuario en el servidor? Además, debemos ser root para ejecutar este script.
1.Solicite la contraseña una vez y úsela en el script durante el resto del script cuando sea necesario. 2. inicie sesión como usuario normal. 3.conviértase en usuario root y ejecute el script
#!/bin/bash
#Script to Add User
read -p 'Please Enter The Username To Add: ' name
echo "$name" > /tmp/userlist.txt
clear
echo -e "Hallo $name\nYour Name Is Added To The List."
userfile=/tmp/userlist.txt
username=$(cat /tmp/userlist.txt | tr 'A-Z' 'a-z')
for user in $username
do
useradd $user -N -s /bin/bash
usermod -aG sudo $user
passwd $user
done
echo "=================================="
echo "User $name Have Been Created."
echo "=================================="
tail /etc/passwd | cut -d: -f1
Respuesta1
Si desea copiar el script y ejecutarlo desde un punto centralizado, cree un script de aprovisionamiento general encargado de copiar y ejecutar.
Cree una lista de matriz, en este caso usé un archivo llamado hostList.active
Establezca que el único argumento sea el script que está intentando copiar y ejecutar en el servidor remoto. (En este caso se ejecutará en el directorio de inicio de las máquinas remotas)
#! /bin/bash while read box; do ping -c 1 -w 1 -q $box > /dev/null if (test $? = 0); then echo "***************************************************************" echo $box scp $1 $box:~/. ssh -n -o stricthostkeychecking=no -X $box "~/$1" else echo $box is not responding to ping echo $box >> hostList.notdone fi done < hostList.active
Coloqué 2 servidores de prueba en mi archivo de lista de matrices (hostList.active) y me conecté a ambos, copié el script y lo ejecuté.
./copyandrun.sh bogus.sh
***************************************************************
tsweb
bogus.sh 100% 36 0.0KB/s 00:00
Running a Test
***************************************************************
tsdb
bogus.sh 100% 36 0.0KB/s 00:00
Running a Test
Asegúrese de que el script que está copiando tenga los permisos adecuados para que pueda ser ejecutado por cualquier usuario al que esté copiando.