Dateien nach "benutzer_anlegen" hochladen
This commit is contained in:
parent
ddaf900d37
commit
f45429147e
|
|
@ -0,0 +1,143 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Debugging aktivieren
|
||||||
|
DEBUG_LOG="debug_apply_changes.log"
|
||||||
|
exec > >(tee -a "$DEBUG_LOG") 2>&1
|
||||||
|
set -x
|
||||||
|
|
||||||
|
source ./data_utils.sh
|
||||||
|
|
||||||
|
apply_changes_to_system() {
|
||||||
|
initialize_user_list
|
||||||
|
|
||||||
|
echo "Starte Änderungen am System..." | tee -a "$DEBUG_LOG"
|
||||||
|
|
||||||
|
# GID der Gruppe "fileserver" ermitteln oder anlegen
|
||||||
|
fileserver_gid=$(getent group fileserver | cut -d':' -f3 || echo "")
|
||||||
|
if [[ -z "$fileserver_gid" ]]; then
|
||||||
|
echo "Erstelle primäre Gruppe 'fileserver' mit GID 1000" | tee -a "$DEBUG_LOG"
|
||||||
|
groupadd --gid 1000 fileserver
|
||||||
|
fileserver_gid=1000
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Vorschau vorbereiten
|
||||||
|
changes_preview=""
|
||||||
|
group_changes_preview=""
|
||||||
|
user_changes_preview=""
|
||||||
|
|
||||||
|
# Gruppenänderungen analysieren
|
||||||
|
echo "Analysiere Gruppenänderungen..." | tee -a "$DEBUG_LOG"
|
||||||
|
while read -r group_entry || [[ -n "$group_entry" ]]; do
|
||||||
|
group_name=$(echo "$group_entry" | cut -d':' -f1)
|
||||||
|
group_gid=$(echo "$group_entry" | cut -d':' -f2)
|
||||||
|
group_status=$(echo "$group_entry" | cut -d':' -f3)
|
||||||
|
|
||||||
|
if [[ "$group_status" == "aktiv" ]]; then
|
||||||
|
if getent group "$group_name" > /dev/null; then
|
||||||
|
existing_gid=$(getent group "$group_name" | cut -d':' -f3)
|
||||||
|
if [[ "$existing_gid" != "$group_gid" ]]; then
|
||||||
|
group_changes_preview+="Korrigiere GID der Gruppe $group_name: $existing_gid -> $group_gid\n"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
group_changes_preview+="Erstelle Gruppe $group_name mit GID $group_gid\n"
|
||||||
|
fi
|
||||||
|
elif [[ "$group_status" == "geloescht" && "$group_name" != "fileserver" ]]; then
|
||||||
|
if getent group "$group_name" > /dev/null; then
|
||||||
|
group_changes_preview+="Lösche Gruppe $group_name\n"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done < <(read_groups)
|
||||||
|
|
||||||
|
# Benutzeränderungen analysieren
|
||||||
|
echo "Analysiere Benutzeränderungen..." | tee -a "$DEBUG_LOG"
|
||||||
|
while read -r user_entry || [[ -n "$user_entry" ]]; do
|
||||||
|
user_name=$(echo "$user_entry" | cut -d':' -f1)
|
||||||
|
user_uid=$(echo "$user_entry" | cut -d':' -f2)
|
||||||
|
user_password=$(echo "$user_entry" | cut -d':' -f3)
|
||||||
|
user_groups=$(echo "$user_entry" | cut -d':' -f4 | tr ',' ' ')
|
||||||
|
user_status=$(echo "$user_entry" | cut -d':' -f5)
|
||||||
|
|
||||||
|
if [[ "$user_status" == "aktiv" ]]; then
|
||||||
|
if id "$user_name" > /dev/null 2>&1; then
|
||||||
|
user_changes_preview+="Aktualisiere Benutzer $user_name\n"
|
||||||
|
else
|
||||||
|
user_changes_preview+="Erstelle Benutzer $user_name mit UID $user_uid und Gruppen $user_groups\n"
|
||||||
|
fi
|
||||||
|
elif [[ "$user_status" == "geloescht" ]]; then
|
||||||
|
if id "$user_name" > /dev/null 2>&1; then
|
||||||
|
user_changes_preview+="Lösche Benutzer $user_name\n"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done < <(read_users)
|
||||||
|
|
||||||
|
# Vorschau anzeigen
|
||||||
|
changes_preview="Gruppenänderungen:\n$group_changes_preview\nBenutzeränderungen:\n$user_changes_preview"
|
||||||
|
dialog --msgbox "$changes_preview" 20 70
|
||||||
|
|
||||||
|
# Bestätigung abfragen
|
||||||
|
dialog --yesno "Möchten Sie die Änderungen anwenden?" 10 30
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
echo "Änderungen abgebrochen." | tee -a "$DEBUG_LOG"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Wende Änderungen im System an..." | tee -a "$DEBUG_LOG"
|
||||||
|
|
||||||
|
# Gruppenänderungen anwenden
|
||||||
|
echo "Wende Gruppenänderungen an..." | tee -a "$DEBUG_LOG"
|
||||||
|
while read -r group_entry || [[ -n "$group_entry" ]]; do
|
||||||
|
group_name=$(echo "$group_entry" | cut -d':' -f1)
|
||||||
|
group_gid=$(echo "$group_entry" | cut -d':' -f2)
|
||||||
|
group_status=$(echo "$group_entry" | cut -d':' -f3)
|
||||||
|
|
||||||
|
if [[ "$group_status" == "aktiv" ]]; then
|
||||||
|
if getent group "$group_name" > /dev/null; then
|
||||||
|
existing_gid=$(getent group "$group_name" | cut -d':' -f3)
|
||||||
|
if [[ "$existing_gid" != "$group_gid" ]]; then
|
||||||
|
echo "Korrigiere GID der Gruppe $group_name: $existing_gid -> $group_gid" | tee -a "$DEBUG_LOG"
|
||||||
|
groupmod --gid "$group_gid" "$group_name"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Erstelle Gruppe $group_name mit GID $group_gid" | tee -a "$DEBUG_LOG"
|
||||||
|
groupadd --gid "$group_gid" "$group_name"
|
||||||
|
fi
|
||||||
|
elif [[ "$group_status" == "geloescht" && "$group_name" != "fileserver" ]]; then
|
||||||
|
if getent group "$group_name" > /dev/null; then
|
||||||
|
echo "Lösche Gruppe $group_name" | tee -a "$DEBUG_LOG"
|
||||||
|
groupdel "$group_name"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done < <(read_groups)
|
||||||
|
|
||||||
|
# Benutzeränderungen anwenden
|
||||||
|
echo "Wende Benutzeränderungen an..." | tee -a "$DEBUG_LOG"
|
||||||
|
while read -r user_entry || [[ -n "$user_entry" ]]; do
|
||||||
|
user_name=$(echo "$user_entry" | cut -d':' -f1)
|
||||||
|
user_uid=$(echo "$user_entry" | cut -d':' -f2)
|
||||||
|
user_password=$(echo "$user_entry" | cut -d':' -f3)
|
||||||
|
user_groups=$(echo "$user_entry" | cut -d':' -f4 | tr ',' ' ')
|
||||||
|
user_status=$(echo "$user_entry" | cut -d':' -f5)
|
||||||
|
|
||||||
|
if [[ "$user_status" == "aktiv" ]]; then
|
||||||
|
if id "$user_name" > /dev/null 2>&1; then
|
||||||
|
echo "Aktualisiere Benutzer $user_name" | tee -a "$DEBUG_LOG"
|
||||||
|
usermod --uid "$user_uid" --gid "$fileserver_gid" --groups "$(echo "$user_groups" | tr ' ' ',')" "$user_name"
|
||||||
|
echo "$user_name:$(echo "$user_password" | openssl enc -aes-256-cbc -d -base64 -k "$DECRYPTION_KEY")" | chpasswd
|
||||||
|
else
|
||||||
|
echo "Erstelle Benutzer $user_name mit UID $user_uid und Gruppen $user_groups" | tee -a "$DEBUG_LOG"
|
||||||
|
useradd --uid "$user_uid" --gid "$fileserver_gid" --groups "$(echo "$user_groups" | tr ' ' ',')" "$user_name"
|
||||||
|
echo "$user_name:$(echo "$user_password" | openssl enc -aes-256-cbc -d -base64 -k "$DECRYPTION_KEY")" | chpasswd
|
||||||
|
fi
|
||||||
|
elif [[ "$user_status" == "geloescht" ]]; then
|
||||||
|
if id "$user_name" > /dev/null 2>&1; then
|
||||||
|
echo "Lösche Benutzer $user_name" | tee -a "$DEBUG_LOG"
|
||||||
|
userdel -r "$user_name"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done < <(read_users)
|
||||||
|
|
||||||
|
echo "Änderungen erfolgreich angewendet." | tee -a "$DEBUG_LOG"
|
||||||
|
}
|
||||||
|
|
||||||
|
apply_changes_to_system
|
||||||
|
|
@ -0,0 +1,109 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Variablen
|
||||||
|
REMOTE_IP=""
|
||||||
|
REMOTE_USER="root"
|
||||||
|
REMOTE_PASSWORD=""
|
||||||
|
REMOTE_SCRIPT="remote_apply_changes.sh"
|
||||||
|
USER_LIST="encrypted_users.list"
|
||||||
|
FILES_GROUP="fileserver"
|
||||||
|
FILES_GROUP_GID=1000
|
||||||
|
|
||||||
|
# Funktion: Abhängigkeiten prüfen
|
||||||
|
check_dependencies() {
|
||||||
|
echo "Prüfe, ob alle Abhängigkeiten installiert sind..."
|
||||||
|
local dependencies=('ssh' 'sshpass' 'scp' 'openssl' 'dialog')
|
||||||
|
for dep in "${dependencies[@]}"; do
|
||||||
|
if ! command -v "$dep" &>/dev/null; then
|
||||||
|
echo "Fehler: $dep ist nicht installiert. Bitte installieren."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "Alle Abhängigkeiten sind installiert."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion: SSH-Verbindung testen
|
||||||
|
test_ssh_connection() {
|
||||||
|
echo "Prüfe Verbindung zu $REMOTE_USER@$REMOTE_IP..."
|
||||||
|
ssh -o BatchMode=yes -o ConnectTimeout=5 "$REMOTE_USER@$REMOTE_IP" "exit" &>/dev/null
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo "Schlüssel-basierte Verbindung erfolgreich."
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo "Schlüssel-basierte Verbindung fehlgeschlagen. Versuche Passwort-basierte Verbindung..."
|
||||||
|
sshpass -p "$REMOTE_PASSWORD" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 "$REMOTE_USER@$REMOTE_IP" "exit" &>/dev/null
|
||||||
|
if [[ $? -eq 0 ]]; then
|
||||||
|
echo "Passwort-basierte SSH-Verbindung erfolgreich."
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
echo "Fehler: Keine Verbindung möglich. Bitte prüfen Sie die Zugangsdaten."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion: Benutzer "fileserver" anlegen
|
||||||
|
ensure_fileserver_user() {
|
||||||
|
echo "Prüfe, ob die Gruppe $FILES_GROUP mit GID $FILES_GROUP_GID existiert..."
|
||||||
|
ssh "$REMOTE_USER@$REMOTE_IP" "getent group $FILES_GROUP || groupadd -g $FILES_GROUP_GID $FILES_GROUP" || {
|
||||||
|
echo "Fehler beim Anlegen der Gruppe $FILES_GROUP auf dem entfernten Server."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
echo "Gruppe $FILES_GROUP mit GID $FILES_GROUP_GID erfolgreich geprüft/angelegt."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion: SSH-Schlüssel installieren
|
||||||
|
install_ssh_key() {
|
||||||
|
echo "Prüfe SSH-Schlüssel..."
|
||||||
|
if [[ ! -f ~/.ssh/id_rsa ]]; then
|
||||||
|
echo "SSH-Schlüssel nicht gefunden. Erstelle neuen Schlüssel..."
|
||||||
|
ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/id_rsa
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Installiere öffentlichen Schlüssel auf dem entfernten Server..."
|
||||||
|
sshpass -p "$REMOTE_PASSWORD" ssh-copy-id -i ~/.ssh/id_rsa.pub "$REMOTE_USER@$REMOTE_IP"
|
||||||
|
echo "SSH-Schlüssel erfolgreich installiert."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Funktion: Dateien übertragen und Skript ausführen
|
||||||
|
execute_remote_script() {
|
||||||
|
echo "Übertrage Skript und Benutzerliste auf den entfernten Server..."
|
||||||
|
scp "$REMOTE_SCRIPT" "$USER_LIST" "$REMOTE_USER@$REMOTE_IP:/tmp" || {
|
||||||
|
echo "Fehler: Dateien konnten nicht übertragen werden."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Führe Skript auf dem entfernten Server aus..."
|
||||||
|
ssh "$REMOTE_USER@$REMOTE_IP" "bash /tmp/$REMOTE_SCRIPT" || {
|
||||||
|
echo "Fehler beim Ausführen des Remote-Skripts. Überprüfen Sie die Logs auf dem entfernten Server."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
echo "Änderungen erfolgreich auf dem entfernten Server angewendet."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Hauptlogik
|
||||||
|
main() {
|
||||||
|
# Eingabe der Remote-Daten
|
||||||
|
REMOTE_IP=$(dialog --inputbox "Geben Sie die IP des entfernten Servers ein:" 10 50 3>&1 1>&2 2>&3)
|
||||||
|
REMOTE_PASSWORD=$(dialog --passwordbox "Geben Sie das Passwort für $REMOTE_USER@$REMOTE_IP ein:" 10 50 3>&1 1>&2 2>&3)
|
||||||
|
|
||||||
|
# Überprüfen der Abhängigkeiten
|
||||||
|
check_dependencies
|
||||||
|
|
||||||
|
# SSH-Verbindung testen und Schlüssel ggf. installieren
|
||||||
|
if test_ssh_connection; then
|
||||||
|
echo "Schlüssel-basierte Verbindung erfolgreich."
|
||||||
|
else
|
||||||
|
echo "Passwort-basierte Verbindung erfolgreich. Installiere SSH-Schlüssel..."
|
||||||
|
install_ssh_key
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Benutzer fileserver anlegen
|
||||||
|
ensure_fileserver_user
|
||||||
|
|
||||||
|
# Dateien übertragen und Remote-Skript ausführen
|
||||||
|
execute_remote_script
|
||||||
|
echo "Alle Schritte erfolgreich abgeschlossen!"
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source ./data_utils.sh
|
||||||
|
|
||||||
|
# Abfrage des Verschlüsselungsschlüssels
|
||||||
|
get_encryption_key() {
|
||||||
|
while true; do
|
||||||
|
key=$(dialog --insecure --passwordbox "Bitte geben Sie den Verschlüsselungsschlüssel ein:" 10 50 3>&1 1>&2 2>&3)
|
||||||
|
exit_status=$?
|
||||||
|
if [[ $exit_status -ne 0 ]]; then
|
||||||
|
dialog --msgbox "Abbruch! Kein Schlüssel eingegeben." 10 50
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Zweite Abfrage zur Bestätigung
|
||||||
|
confirm_key=$(dialog --insecure --passwordbox "Bestätigen Sie den Verschlüsselungsschlüssel:" 10 50 3>&1 1>&2 2>&3)
|
||||||
|
exit_status=$?
|
||||||
|
if [[ $exit_status -ne 0 ]]; then
|
||||||
|
dialog --msgbox "Abbruch! Bestätigung nicht abgeschlossen." 10 50
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Schlüsselvergleich
|
||||||
|
if [[ "$key" == "$confirm_key" ]]; then
|
||||||
|
echo "$key"
|
||||||
|
return
|
||||||
|
else
|
||||||
|
dialog --msgbox "Die Schlüssel stimmen nicht überein. Bitte erneut versuchen." 10 50
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Schlüssel global abfragen
|
||||||
|
ENCRYPTION_KEY=$(get_encryption_key)
|
||||||
|
|
||||||
|
# Hauptmenü
|
||||||
|
while true; do
|
||||||
|
choice=$(dialog --menu "Benutzer- und Gruppenverwaltung" 20 50 12 \
|
||||||
|
1 "Benutzer hinzufügen" \
|
||||||
|
2 "Benutzer löschen" \
|
||||||
|
3 "Benutzer zu Gruppe hinzufügen" \
|
||||||
|
4 "Benutzer aus Gruppe entfernen" \
|
||||||
|
5 "Benutzer anzeigen" \
|
||||||
|
6 "Gruppen anzeigen" \
|
||||||
|
7 "Gruppe hinzufügen" \
|
||||||
|
8 "Gruppe löschen" \
|
||||||
|
9 "Änderungen ins System schreiben" \
|
||||||
|
10 "Änderungen auf entfernten Server schreiben" \
|
||||||
|
11 "Beenden" 3>&1 1>&2 2>&3)
|
||||||
|
|
||||||
|
case $choice in
|
||||||
|
1)
|
||||||
|
./add_user.sh "$ENCRYPTION_KEY" ;;
|
||||||
|
2)
|
||||||
|
./delete_user.sh ;;
|
||||||
|
3)
|
||||||
|
./add_user_to_group.sh ;;
|
||||||
|
4)
|
||||||
|
./remove_user_from_group.sh ;;
|
||||||
|
5)
|
||||||
|
./list_users.sh ;;
|
||||||
|
6)
|
||||||
|
./list_groups.sh ;;
|
||||||
|
7)
|
||||||
|
./add_group.sh ;;
|
||||||
|
8)
|
||||||
|
./delete_group.sh ;;
|
||||||
|
9)
|
||||||
|
./apply_changes.sh "$ENCRYPTION_KEY" ;;
|
||||||
|
10)
|
||||||
|
./apply_changes_to_remote_server.sh "$ENCRYPTION_KEY" ;;
|
||||||
|
11)
|
||||||
|
break ;;
|
||||||
|
*)
|
||||||
|
dialog --msgbox "Ungültige Auswahl!" 10 30 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,238 @@
|
||||||
|
Starte Änderungen am System...
|
||||||
|
+ source ./data_utils.sh
|
||||||
|
++ USER_LIST=encrypted_users.list
|
||||||
|
+ apply_changes_to_system
|
||||||
|
+ initialize_user_list
|
||||||
|
+ [[ ! -f encrypted_users.list ]]
|
||||||
|
+ grep -q '\[users\]' encrypted_users.list
|
||||||
|
+ grep -q '\[groups\]' encrypted_users.list
|
||||||
|
+ grep -q '^fileserver:' encrypted_users.list
|
||||||
|
+ echo 'Starte Änderungen am System...'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Starte Änderungen am System...
|
||||||
|
++ getent group fileserver
|
||||||
|
++ cut -d: -f3
|
||||||
|
++ echo ''
|
||||||
|
+ fileserver_gid=
|
||||||
|
+ [[ -z '' ]]
|
||||||
|
+ echo 'Erstelle primäre Gruppe '\''fileserver'\'' mit GID 1000'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Erstelle primäre Gruppe 'fileserver' mit GID 1000
|
||||||
|
Erstelle primäre Gruppe 'fileserver' mit GID 1000
|
||||||
|
+ groupadd --gid 1000 fileserver
|
||||||
|
+ fileserver_gid=1000
|
||||||
|
+ changes_preview=
|
||||||
|
+ group_changes_preview=
|
||||||
|
+ user_changes_preview=
|
||||||
|
Analysiere Gruppenänderungen...
|
||||||
|
+ echo 'Analysiere Gruppenänderungen...'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Analysiere Gruppenänderungen...
|
||||||
|
+ read -r group_entry
|
||||||
|
++ read_groups
|
||||||
|
++ awk '/\[groups\]/ {flag=1; next} flag' encrypted_users.list
|
||||||
|
++ grep -v '^\s*$'
|
||||||
|
++ echo fileserver:aktiv
|
||||||
|
++ cut -d: -f1
|
||||||
|
+ group_name=fileserver
|
||||||
|
++ echo fileserver:aktiv
|
||||||
|
++ cut -d: -f2
|
||||||
|
+ group_gid=aktiv
|
||||||
|
++ echo fileserver:aktiv
|
||||||
|
++ cut -d: -f3
|
||||||
|
+ group_status=
|
||||||
|
+ [[ '' == \a\k\t\i\v ]]
|
||||||
|
+ [[ '' == \g\e\l\o\e\s\c\h\t ]]
|
||||||
|
+ read -r group_entry
|
||||||
|
++ echo buero:501:aktiv
|
||||||
|
++ cut -d: -f1
|
||||||
|
+ group_name=buero
|
||||||
|
++ echo buero:501:aktiv
|
||||||
|
++ cut -d: -f2
|
||||||
|
+ group_gid=501
|
||||||
|
++ echo buero:501:aktiv
|
||||||
|
++ cut -d: -f3
|
||||||
|
+ group_status=aktiv
|
||||||
|
+ [[ aktiv == \a\k\t\i\v ]]
|
||||||
|
+ getent group buero
|
||||||
|
+ group_changes_preview+='Erstelle Gruppe buero mit GID 501\n'
|
||||||
|
+ read -r group_entry
|
||||||
|
++ echo familie:502:aktiv
|
||||||
|
++ cut -d: -f1
|
||||||
|
+ group_name=familie
|
||||||
|
++ echo familie:502:aktiv
|
||||||
|
++ cut -d: -f2
|
||||||
|
+ group_gid=502
|
||||||
|
++ cut -d: -f3
|
||||||
|
++ echo familie:502:aktiv
|
||||||
|
+ group_status=aktiv
|
||||||
|
+ [[ aktiv == \a\k\t\i\v ]]
|
||||||
|
+ getent group familie
|
||||||
|
+ group_changes_preview+='Erstelle Gruppe familie mit GID 502\n'
|
||||||
|
+ read -r group_entry
|
||||||
|
++ echo privat:503:aktiv
|
||||||
|
++ cut -d: -f1
|
||||||
|
+ group_name=privat
|
||||||
|
++ echo privat:503:aktiv
|
||||||
|
++ cut -d: -f2
|
||||||
|
+ group_gid=503
|
||||||
|
++ echo privat:503:aktiv
|
||||||
|
++ cut -d: -f3
|
||||||
|
+ group_status=aktiv
|
||||||
|
+ [[ aktiv == \a\k\t\i\v ]]
|
||||||
|
+ getent group privat
|
||||||
|
+ group_changes_preview+='Erstelle Gruppe privat mit GID 503\n'
|
||||||
|
+ read -r group_entry
|
||||||
|
+ [[ -n '' ]]
|
||||||
|
+ echo 'Analysiere Benutzeränderungen...'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Analysiere Benutzeränderungen...
|
||||||
|
Analysiere Benutzeränderungen...
|
||||||
|
+ read -r user_entry
|
||||||
|
++ read_users
|
||||||
|
++ awk '/\[users\]/ {flag=1; next} /\[groups\]/ {flag=0} flag' encrypted_users.list
|
||||||
|
++ grep -v '^\s*$'
|
||||||
|
++ echo sebastian.zell:2000:U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=:fileserver,familie,buero:aktiv
|
||||||
|
++ cut -d: -f1
|
||||||
|
+ user_name=sebastian.zell
|
||||||
|
++ echo sebastian.zell:2000:U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=:fileserver,familie,buero:aktiv
|
||||||
|
++ cut -d: -f2
|
||||||
|
+ user_uid=2000
|
||||||
|
++ echo sebastian.zell:2000:U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=:fileserver,familie,buero:aktiv
|
||||||
|
++ cut -d: -f3
|
||||||
|
+ user_password=U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=
|
||||||
|
++ echo sebastian.zell:2000:U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=:fileserver,familie,buero:aktiv
|
||||||
|
++ cut -d: -f4
|
||||||
|
++ tr , ' '
|
||||||
|
+ user_groups='fileserver familie buero'
|
||||||
|
++ echo sebastian.zell:2000:U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=:fileserver,familie,buero:aktiv
|
||||||
|
++ cut -d: -f5
|
||||||
|
+ user_status=aktiv
|
||||||
|
+ [[ aktiv == \a\k\t\i\v ]]
|
||||||
|
+ id sebastian.zell
|
||||||
|
+ user_changes_preview+='Erstelle Benutzer sebastian.zell mit UID 2000 und Gruppen fileserver familie buero\n'
|
||||||
|
+ read -r user_entry
|
||||||
|
+ [[ -n '' ]]
|
||||||
|
+ changes_preview='Gruppenänderungen:\nErstelle Gruppe buero mit GID 501\nErstelle Gruppe familie mit GID 502\nErstelle Gruppe privat mit GID 503\n\nBenutzeränderungen:\nErstelle Benutzer sebastian.zell mit UID 2000 und Gruppen fileserver familie buero\n'
|
||||||
|
+ dialog --msgbox 'Gruppenänderungen:\nErstelle Gruppe buero mit GID 501\nErstelle Gruppe familie mit GID 502\nErstelle Gruppe privat mit GID 503\n\nBenutzeränderungen:\nErstelle Benutzer sebastian.zell mit UID 2000 und Gruppen fileserver familie buero\n' 20 70
|
||||||
|
)0[1;24r[m[4l[?7h[?1000h[39;49m[39;49m[m[H[J[23d[0;10;1m[36m[44m[J[H[K[2d [37m[47m┌────────────────────────────────────────────────────────────────────[0;10m[30m[47m┐[0;10;1m[36m[44m[K
[3d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[4d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[5d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[6d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[7d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[8d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[9d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[10d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[11d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[12d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[13d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[14d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[15d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[16d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[17d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[18d [37m[47m│[0;10m[30m[47m[68X[74G│[0;10;1m[30m[40m [36m[44m[K
[19d [37m[47m├────────────────────────────────────────────────────────────────────[0;10m[30m[47m┤[0;10;1m[30m[40m [36m[44m[K
[20d [37m[47m│[0;10m[30m[47m[29X[20;35H[0;10;1m[37m[44m<[33m[44m [37m[44mO[33m[44mK [37m[44m>[0;10m[30m[47m[31X[74G│[0;10;1m[30m[40m [36m[44m[K
[21d [37m[47m└[0;10m[30m[47m────────────────────────────────────────────────────────────────────┘[0;10;1m[30m[40m [36m[44m[K[22;6H[1K [30m[40m[70X[77G[36m[44m[K[20;38H[39;49m[m[3;7H[30m[47mGruppenänderungen:[4;7HErstelle Gruppe buero mit GID 501[5;7HErstelle Gruppe familie mit GID 502[6;7HErstelle Gruppe privat mit GID 503[8;7HBenutzeränderungen:[9;7HErstelle Benutzer sebastian.zell mit UID 2000 und Gruppen[10;7Hfileserver familie buero[20;38H[39;49m[m[22;76H[?1000l[24;1H
+ dialog --yesno 'Möchten Sie die Änderungen anwenden?' 10 30
|
||||||
|
)0[1;24r[m[4l[?7h[?1000h[39;49m[39;49m[m[H[J[18d[0;10;1m[36m[44m[J[H[K[2d[K[3d[K[4d[K[5d[K[6d[K[7;24H[1K [37m[47m┌────────────────────────────[0;10m[30m[47m┐[0;10;1m[36m[44m[K[8;24H[1K [37m[47m│[0;10m[30m[47m[28X[8;54H│[0;10;1m[30m[40m [36m[44m[K[9;24H[1K [37m[47m│[0;10m[30m[47m[28X[9;54H│[0;10;1m[30m[40m [36m[44m[K[10;24H[1K [37m[47m│[0;10m[30m[47m[28X[10;54H│[0;10;1m[30m[40m [36m[44m[K[11;24H[1K [37m[47m│[0;10m[30m[47m[28X[11;54H│[0;10;1m[30m[40m [36m[44m[K[12;24H[1K [37m[47m│[0;10m[30m[47m[28X[12;54H│[0;10;1m[30m[40m [36m[44m[K[13;24H[1K [37m[47m│[0;10m[30m[47m[28X[13;54H│[0;10;1m[30m[40m [36m[44m[K[14;24H[1K [37m[47m├────────────────────────────[0;10m[30m[47m┤[0;10;1m[30m[40m [36m[44m[K[15;24H[1K [37m[47m│[0;10m[30m[47m [0;10;1m[37m[44m<[33m[44m [37m[44mY[33m[44mes [37m[44m>[0;10m[30m[47m <[0;10;1m[30m[47m [0;10m[31m[47mN[0;10;1m[30m[47mo [0;10m[30m[47m> │[0;10;1m[30m[40m [36m[44m[K[16;24H[1K [37m[47m└[0;10m[30m[47m────────────────────────────┘[0;10;1m[30m[40m [36m[44m[K[17;26H[1K [30m[40m[30X[17;57H[36m[44m[K[15;33H[39;49m[m[8;27H[30m[47mMöchten Sie die Änderungen[9;27Hanwenden?[15;33H[39;49m[m[17;56H[?1000l[24;1H
+ [[ 0 -ne 0 ]]
|
||||||
|
+ echo 'Wende Änderungen im System an...'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Wende Änderungen im System an...
|
||||||
|
Wende Änderungen im System an...
|
||||||
|
Wende Gruppenänderungen an...
|
||||||
|
+ echo 'Wende Gruppenänderungen an...'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Wende Gruppenänderungen an...
|
||||||
|
+ read -r group_entry
|
||||||
|
++ read_groups
|
||||||
|
++ awk '/\[groups\]/ {flag=1; next} flag' encrypted_users.list
|
||||||
|
++ grep -v '^\s*$'
|
||||||
|
++ echo fileserver:aktiv
|
||||||
|
++ cut -d: -f1
|
||||||
|
+ group_name=fileserver
|
||||||
|
++ echo fileserver:aktiv
|
||||||
|
++ cut -d: -f2
|
||||||
|
+ group_gid=aktiv
|
||||||
|
++ echo fileserver:aktiv
|
||||||
|
++ cut -d: -f3
|
||||||
|
+ group_status=
|
||||||
|
+ [[ '' == \a\k\t\i\v ]]
|
||||||
|
+ [[ '' == \g\e\l\o\e\s\c\h\t ]]
|
||||||
|
+ read -r group_entry
|
||||||
|
++ echo buero:501:aktiv
|
||||||
|
++ cut -d: -f1
|
||||||
|
+ group_name=buero
|
||||||
|
++ echo buero:501:aktiv
|
||||||
|
++ cut -d: -f2
|
||||||
|
+ group_gid=501
|
||||||
|
++ echo buero:501:aktiv
|
||||||
|
++ cut -d: -f3
|
||||||
|
+ group_status=aktiv
|
||||||
|
+ [[ aktiv == \a\k\t\i\v ]]
|
||||||
|
+ getent group buero
|
||||||
|
+ echo 'Erstelle Gruppe buero mit GID 501'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Erstelle Gruppe buero mit GID 501
|
||||||
|
Erstelle Gruppe buero mit GID 501
|
||||||
|
+ groupadd --gid 501 buero
|
||||||
|
+ read -r group_entry
|
||||||
|
++ cut -d: -f1
|
||||||
|
++ echo familie:502:aktiv
|
||||||
|
+ group_name=familie
|
||||||
|
++ echo familie:502:aktiv
|
||||||
|
++ cut -d: -f2
|
||||||
|
+ group_gid=502
|
||||||
|
++ echo familie:502:aktiv
|
||||||
|
++ cut -d: -f3
|
||||||
|
+ group_status=aktiv
|
||||||
|
+ [[ aktiv == \a\k\t\i\v ]]
|
||||||
|
+ getent group familie
|
||||||
|
+ echo 'Erstelle Gruppe familie mit GID 502'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Erstelle Gruppe familie mit GID 502
|
||||||
|
Erstelle Gruppe familie mit GID 502
|
||||||
|
+ groupadd --gid 502 familie
|
||||||
|
+ read -r group_entry
|
||||||
|
++ echo privat:503:aktiv
|
||||||
|
++ cut -d: -f1
|
||||||
|
+ group_name=privat
|
||||||
|
++ echo privat:503:aktiv
|
||||||
|
++ cut -d: -f2
|
||||||
|
+ group_gid=503
|
||||||
|
++ echo privat:503:aktiv
|
||||||
|
++ cut -d: -f3
|
||||||
|
+ group_status=aktiv
|
||||||
|
+ [[ aktiv == \a\k\t\i\v ]]
|
||||||
|
+ getent group privat
|
||||||
|
+ echo 'Erstelle Gruppe privat mit GID 503'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Erstelle Gruppe privat mit GID 503
|
||||||
|
Erstelle Gruppe privat mit GID 503
|
||||||
|
+ groupadd --gid 503 privat
|
||||||
|
+ read -r group_entry
|
||||||
|
+ [[ -n '' ]]
|
||||||
|
Wende Benutzeränderungen an...
|
||||||
|
+ echo 'Wende Benutzeränderungen an...'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Wende Benutzeränderungen an...
|
||||||
|
+ read -r user_entry
|
||||||
|
++ read_users
|
||||||
|
++ awk '/\[users\]/ {flag=1; next} /\[groups\]/ {flag=0} flag' encrypted_users.list
|
||||||
|
++ grep -v '^\s*$'
|
||||||
|
++ echo sebastian.zell:2000:U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=:fileserver,familie,buero:aktiv
|
||||||
|
++ cut -d: -f1
|
||||||
|
+ user_name=sebastian.zell
|
||||||
|
++ echo sebastian.zell:2000:U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=:fileserver,familie,buero:aktiv
|
||||||
|
++ cut -d: -f2
|
||||||
|
+ user_uid=2000
|
||||||
|
++ echo sebastian.zell:2000:U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=:fileserver,familie,buero:aktiv
|
||||||
|
++ cut -d: -f3
|
||||||
|
+ user_password=U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=
|
||||||
|
++ echo sebastian.zell:2000:U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=:fileserver,familie,buero:aktiv
|
||||||
|
++ cut -d: -f4
|
||||||
|
++ tr , ' '
|
||||||
|
+ user_groups='fileserver familie buero'
|
||||||
|
++ echo sebastian.zell:2000:U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=:fileserver,familie,buero:aktiv
|
||||||
|
++ cut -d: -f5
|
||||||
|
+ user_status=aktiv
|
||||||
|
+ [[ aktiv == \a\k\t\i\v ]]
|
||||||
|
+ id sebastian.zell
|
||||||
|
+ echo 'Erstelle Benutzer sebastian.zell mit UID 2000 und Gruppen fileserver familie buero'
|
||||||
|
+ tee -a debug_apply_changes.log
|
||||||
|
Erstelle Benutzer sebastian.zell mit UID 2000 und Gruppen fileserver familie buero
|
||||||
|
Erstelle Benutzer sebastian.zell mit UID 2000 und Gruppen fileserver familie buero
|
||||||
|
++ echo 'fileserver familie buero'
|
||||||
|
++ tr ' ' ,
|
||||||
|
+ useradd --uid 2000 --gid 1000 --groups fileserver,familie,buero sebastian.zell
|
||||||
|
+ chpasswd
|
||||||
|
++ echo U2FsdGVkX18tLfq131Ve0QvTqZJi/w9FNTek5K122Xc=
|
||||||
|
./apply_changes.sh: line 130: DECRYPTION_KEY: unbound variable
|
||||||
|
+ echo sebastian.zell:
|
||||||
|
No password has been supplied.
|
||||||
|
No password has been supplied.
|
||||||
|
No password has been supplied.
|
||||||
|
chpasswd: (user sebastian.zell) pam_chauthtok() failed, error:
|
||||||
|
Authentication token manipulation error
|
||||||
|
chpasswd: (line 1, user sebastian.zell) password not changed
|
||||||
Loading…
Reference in New Issue