User Tools

Site Tools


linux:arch_guest_account

This is an old revision of the document!




Guest Account Details

The ACM workstations have guest accounts whose home directories are wiped at logoff.

Username: acmguest Password: acmguest

Guest Account Setup

The guest account functionality relies on a package from the AUR (Archlinux Users Repository) called guestd. The actual rc script has been monified to obtain the desired functionality. The clean guest directory is located in /opt/acmguest-skel and the live home directory is /opt/acmguest. The guest directory is NOT on NFS. The guest account has to have access to run the guestd rc script as part of the loggout process. The loggout functionality is currently obtained with LXDM using the file /etc/lxdm/PostLogout.

This is the guestd rc script, a restart operation deletes the current live directory and replaces it with the skel one.

/etc/rc.d/guestd

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

OLD_IFS="$IFS"
IFS=$'\n'
GUEST_USER="acmguest"
GUEST_GROUP="users"
GUEST_HOME="/opt/acmguest"
GUEST_SKEL="/opt/acmguest-skel"
case "$1" in
  start)
    stat_busy "Fixing Guest Directory"
    cp -R $GUEST_SKEL -T $GUEST_HOME
    chown -R $GUEST_USER:$GUEST_GROUP $GUEST_HOME $GUEST_SKEL
    chmod -R 770 $GUEST_HOME
    chmod -R 550 $GUEST_SKEL
    stat_done
    add_daemon guestd
    ;;
  stop)
    stat_busy "Removing Guest Directory"
    if [ -d "$GUEST_HOME" ]; then
      rm -rf $GUEST_HOME
      stat_done
      rm_daemon guestd
    else
      echo "Failed to remove directory; directory does not exist."
      stat_fail
      rm_daemon guestd
    fi
    ;;
  restart)
    $0 stop
    sleep 1
    $0 start
    ;;
  *)
    echo "usage: $0 {start|stop|restart}"
esac

/etc/lxdm/PostLogout

#!/bin/sh
#
# Note: this is a sample and will not be run as is.
if [ "$USER" == "acmguest" ]
then
	/etc/rc.d/guestd restart
fi
killall --user $USER -TERM

linux/arch_guest_account.1327507924.txt.gz · Last modified: 2021/05/02 21:36 (external edit)