#!/bin/bash
# Filename:      ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/21-usersetup
# Purpose:       adjust user setup of the live-system
# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports:   see http://grml.org/bugs/
# License:       This file is licensed under the GPL v2 or any later version.
################################################################################

set -u
set -e

USERNAME=''
[ -r /etc/grml/grml-live.conf ]  && . /etc/grml/grml-live.conf
[ -n "$GRML_LIVE_LOCAL_CONFIG" ] && . "$GRML_LIVE_LOCAL_CONFIG"
[ -n "$USERNAME" ] || USERNAME=grml

if grep -q "$USERNAME:x:1000" $target/etc/group ; then
   echo "group $USERNAME exists already, skipping"
else
  if grep -q 'gsmsms:x:1000' $target/etc/group ; then
     echo 'Bug #353967 detected, fixing GUID = 1000 setup for you'
     $ROOTCMD delgroup gsmsms || /bin/true
     $ROOTCMD deluser gsmsms  || /bin/true
     $ROOTCMD addgroup --system gsmsms || /bin/true
     $ROOTCMD adduser --system --ingroup gsmsms \
                      --no-create-home --home /var/spool/sms gsmsms || /bin/true
     $ROOTCMD adduser gsmsms dialout || /bin/true
  fi
  $ROOTCMD addgroup --gid 1000 $USERNAME
fi

if grep -q "$USERNAME:x:1000" $target/etc/passwd ; then
   echo "user $USERNAME exists already, skipping"
else
   $ROOTCMD useradd -d /home/$USERNAME -m -s /bin/zsh -g 1000 $USERNAME
fi

# make sure to add the user to all relevant groups:
add_user_to_group() {
   [ -n "$1" ] || return 1
   if grep -q $1 $target/etc/group ; then
      grep "$1:x:.*$USERNAME" $target/etc/group || $ROOTCMD addgroup $USERNAME $1
   fi
}

add_user_to_group audio
add_user_to_group camera
add_user_to_group cdrom
add_user_to_group dialout
add_user_to_group dip
add_user_to_group fax
add_user_to_group floppy
add_user_to_group fuse
add_user_to_group games
add_user_to_group nvram
add_user_to_group netdev
add_user_to_group plugdev
add_user_to_group scanner
add_user_to_group sudo
add_user_to_group tape
add_user_to_group tty
add_user_to_group usb
add_user_to_group users
add_user_to_group video
add_user_to_group vlock
add_user_to_group voice

sed -i 's/^root::/root:*:/'            $target/etc/shadow
sed -i "s/^$USERNAME:!:/$USERNAME:*:/" $target/etc/shadow

# make sure users can log in on consoles 4, 5 and 6 if username != grml:
if [ "$USERNAME" != "grml" ] ; then
   sed -i "s/-u grml -g grml --autologin grml/-u ${USERNAME} -g ${USERNAME} --autologin ${USERNAME}/" \
   $target/etc/inittab
fi

if [ -r $target/bin/zsh ] ; then
   $ROOTCMD chsh -s /bin/zsh root
   $ROOTCMD chsh -s /bin/zsh $USERNAME
fi

## END OF FILE #################################################################
# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
