
Ich habe das folgende Bash-Skript. Jedes Mal, wenn ich einen Benutzer erstellen möchte, muss ich dieses Skript auf den Server kopieren und ausführen.
Gibt es etwas, was wir tun können, damit dieses Skript die IPs nacheinander aus einer hosts.txt-Datei abruft (Skript auf mehreren Servern ausführen) und einen Benutzer auf dem Server erstellt? Außerdem müssen wir Root-Rechte haben, um dieses Skript auszuführen?
1. Fordern Sie einmal das Passwort an und verwenden Sie es im Skript für den Rest, wo immer nötig. 2. Melden Sie sich als normaler Benutzer an. 3. Werden Sie Root-Benutzer und führen Sie das Skript aus.
#!/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
Antwort1
Wenn Sie das Skript kopieren und von einem zentralen Punkt aus ausführen möchten, erstellen Sie ein allgemeines Bereitstellungsskript, das für das Kopieren und Ausführen zuständig ist
Erstellen Sie eine Array-Liste. In diesem Fall habe ich eine Datei namens hostList.active verwendet.
Legen Sie als einziges Argument das Skript fest, das Sie kopieren und auf dem Remote-Server ausführen möchten. (In diesem Fall wird es im Stammverzeichnis des Remote-Computers ausgeführt.)
#! /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
Ich habe 2 Testserver in meiner Array-Listendatei (hostList.active) platziert und es wurde eine Verbindung zu beiden hergestellt, das Skript kopiert und ausgeführt.
./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
Stellen Sie sicher, dass das von Ihnen kopierte Skript über die erforderlichen Berechtigungen verfügt, damit es von dem Benutzer ausgeführt werden kann, als der Sie es kopieren.