58 lines
1.6 KiB
Bash
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
|
|
}
|
|
|