scripte/benutzer_anlegen/data_utils.sh

58 lines
1.6 KiB
Bash

#!/bin/bash
USER_LIST="encrypted_users.list"
# Initialisiert die Benutzer- und Gruppendatei, falls sie nicht existiert oder unvollständig ist
initialize_user_list() {
if [[ ! -f "$USER_LIST" ]]; then
echo -e "[users]\n\n[groups]\nfileserver:aktiv" >"$USER_LIST"
fi
# Prüft und fügt fehlende Sektionen hinzu
if ! grep -q "\[users\]" "$USER_LIST"; then
sed -i '1i\[users]\n' "$USER_LIST"
fi
if ! grep -q "\[groups\]" "$USER_LIST"; then
echo -e "\n[groups]\nfileserver:aktiv" >>"$USER_LIST"
elif ! grep -q "^fileserver:" "$USER_LIST"; then
# Fügt die Gruppe fileserver hinzu, falls sie fehlt
echo "fileserver:aktiv" >>"$USER_LIST"
fi
}
# Liest Benutzer aus der Datei
read_users() {
awk '/\[users\]/ {flag=1; next} /\[groups\]/ {flag=0} flag' "$USER_LIST" | grep -v "^\s*$"
}
# Liest Gruppen aus der Datei
read_groups() {
awk '/\[groups\]/ {flag=1; next} flag' "$USER_LIST" | grep -v "^\s*$"
}
# Fügt einen Benutzer hinzu (oder aktualisiert ihn, falls er gelöscht wurde)
add_user_to_file() {
local username=$1
local uid=$2
local password=$3
local groups=$4
local status=$5
# Entfernt bestehenden Eintrag des Benutzers
sed -i "/^$username:/d" "$USER_LIST"
# Fügt den Benutzer in die Sektion [users] ein
sed -i "/\[users\]/a $username:$uid:$password:$groups:$status" "$USER_LIST"
}
# Fügt eine Gruppe hinzu
add_group_to_file() {
local groupname=$1
if ! grep -q "^$groupname:" <(read_groups); then
echo "$groupname:aktiv" >>"$USER_LIST"
fi
}