31 lines
642 B
Bash
31 lines
642 B
Bash
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
LOCAL_GROUP="baseusers"
|
|
|
|
# Ensure local group exists
|
|
if ! getent group "$LOCAL_GROUP" >/dev/null; then
|
|
groupadd "$LOCAL_GROUP"
|
|
fi
|
|
|
|
# Detect active user (works for SSH + console)
|
|
CURRENT_USER=$(who | awk '{print $1}' | head -n 1)
|
|
|
|
if [ -z "$CURRENT_USER" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Ensure user exists
|
|
if ! id "$CURRENT_USER" >/dev/null 2>&1; then
|
|
exit 0
|
|
fi
|
|
|
|
# Check if user is in FreeIPA BaseUser group
|
|
if id "$CURRENT_USER" | grep -q "BaseUser"; then
|
|
|
|
# Add to local group if missing
|
|
if ! id "$CURRENT_USER" | grep -q "$LOCAL_GROUP"; then
|
|
usermod -aG "$LOCAL_GROUP" "$CURRENT_USER"
|
|
fi
|
|
fi
|