fix creating if user already exists
Build and Push Docker Container / build-and-push (push) Successful in 2m18s
Build and Push Docker Container / build-and-push (push) Successful in 2m18s
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
source "/variables.sh"
|
source "/variables.sh"
|
||||||
|
USER_GROUP="$USER"
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Funktionen
|
# Funktionen
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@@ -35,18 +36,35 @@ function create_folder_and_change_permissions {
|
|||||||
if [ ! -d "$1" ]; then
|
if [ ! -d "$1" ]; then
|
||||||
mkdir -p "$1"
|
mkdir -p "$1"
|
||||||
fi
|
fi
|
||||||
chown -R "$USER":"$USER" "$1"
|
chown -R "$USER":"$USER_GROUP" "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
function add_borg_user {
|
function add_borg_user {
|
||||||
if ! id "$USER" >/dev/null 2>&1; then
|
if ! id "$USER" >/dev/null 2>&1; then
|
||||||
|
local group_name="$USER"
|
||||||
|
local existing_group
|
||||||
|
existing_group="$(getent group "$GID" | cut -d: -f1 || true)"
|
||||||
|
if [ -n "$existing_group" ]; then
|
||||||
|
group_name="$existing_group"
|
||||||
|
elif ! getent group "$USER" >/dev/null 2>&1; then
|
||||||
groupadd -g "$GID" "$USER" >/dev/null
|
groupadd -g "$GID" "$USER" >/dev/null
|
||||||
useradd -M -u "$UID" -g "$GID" -d / -s /bin/bash "$USER" >/dev/null
|
fi
|
||||||
|
USER_GROUP="$group_name"
|
||||||
|
|
||||||
|
if getent passwd "$UID" >/dev/null 2>&1; then
|
||||||
|
existing_user="$(getent passwd "$UID" | cut -d: -f1)"
|
||||||
|
usermod -l "$USER" "$existing_user" >/dev/null 2>&1 || true
|
||||||
|
usermod -d / -s /bin/bash -g "$group_name" "$USER" >/dev/null
|
||||||
|
else
|
||||||
|
useradd -M -u "$UID" -g "$group_name" -d / -s /bin/bash "$USER" >/dev/null
|
||||||
|
fi
|
||||||
printf "%s ALL=(ALL) NOPASSWD: ALL\n" "$USER" >> /etc/sudoers
|
printf "%s ALL=(ALL) NOPASSWD: ALL\n" "$USER" >> /etc/sudoers
|
||||||
|
|
||||||
create_folder_and_change_permissions "/.config"
|
create_folder_and_change_permissions "/.config"
|
||||||
create_folder_and_change_permissions "/.cache"
|
create_folder_and_change_permissions "/.cache"
|
||||||
chmod 700 "/.cache"
|
chmod 700 "/.cache"
|
||||||
|
else
|
||||||
|
USER_GROUP="$(id -gn "$USER")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
random_pw="$(dd if=/dev/urandom bs=18 count=1 2>/dev/null | base64)"
|
random_pw="$(dd if=/dev/urandom bs=18 count=1 2>/dev/null | base64)"
|
||||||
@@ -81,7 +99,7 @@ function make_and_import_ssh_keys {
|
|||||||
done
|
done
|
||||||
shopt -u nullglob
|
shopt -u nullglob
|
||||||
|
|
||||||
chown -R "$USER":"$USER" "/.ssh"
|
chown -R "$USER":"$USER_GROUP" "/.ssh"
|
||||||
chmod 700 "/.ssh"
|
chmod 700 "/.ssh"
|
||||||
chmod 600 "/.ssh/authorized_keys"
|
chmod 600 "/.ssh/authorized_keys"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user