-
Notifications
You must be signed in to change notification settings - Fork 0
/
create_users.sh
executable file
·59 lines (44 loc) · 1.71 KB
/
create_users.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash
# JSON-bestand met gebruikersnamen
json_file="usernames.json"
# Map voor private keys
private_keys_dir="/data/privkeys"
# Maak de map aan als deze nog niet bestaat
mkdir -p "$private_keys_dir"
# Usergroep
user_group="creative_users"
# Controleer of het JSON-bestand bestaat
if [ ! -f "$json_file" ]; then
echo "JSON-bestand ($json_file) niet gevonden."
exit 1
fi
# Controleer of de usergroep bestaat
if ! getent group "$user_group" &>/dev/null; then
echo "Usergroep $user_group bestaat niet. Aanmaken..."
groupadd "$user_group"
fi
# Lees gebruikersnamen uit het JSON-bestand
usernames=$(jq -r '.users | .[] | .username' "$json_file")
# Loop door de gebruikersnamen
for username in $usernames; do
# Controleer of de gebruiker al bestaat
if id "$username" &>/dev/null; then
echo "Gebruiker $username bestaat al."
else
# Maak de gebruiker aan als deze nog niet bestaat
useradd -m -s /bin/bash -g "$user_group" "$username"
echo "Gebruiker $username aangemaakt met standaardgroep $user_group."
fi
# Genereer een SSH-key-pair voor de gebruiker
sudo -u "$username" ssh-keygen -t rsa -b 2048 -f "/home/$username/.ssh/id_rsa" -N ''
# Kopieer de private key naar de map /data/privkeys met unieke naam
cp "/home/$username/.ssh/id_rsa" "$private_keys_dir/id_rsa_$username"
# Voeg de public key toe aan authorized_keys
cat "/home/$username/.ssh/id_rsa.pub" >> "/home/$username/.ssh/authorized_keys"
echo "Public key toegevoegd aan authorized_keys voor gebruiker $username."
done
# Prepare minecraft setup
# Zorg ervoor dat de usergroep schrijftoegang heeft tot de /data/privkeys directory
chown :"$user_group" "$private_keys_dir"
chmod 770 "$private_keys_dir"
echo "Script voltooid."