This shows you the differences between two versions of the page.
linux:arch_guest_account [2012/01/25 16:12] walter |
linux:arch_guest_account [2021/05/02 21:36] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== 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. | ||
- | <file|/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 | ||
- | </file> | ||
- | |||
- | <file| /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 | ||
- | </file> |