I.2. Hindre at brukere logger seg på flere tynnklienter samtidig.

Det kan være et skikkelig brysom lite problem når en bruker logger seg på flere tynnklienter samtidig, f.eks hvis han prøver å forandre bakgrunnsbilde på begge stedene.

Løsningen er å sette opp en liten test i det en bruker logger seg på, for å sjekke om han allerede er logget på, hvis han er det, så får han ikke logget seg på pånytt.

Scriptet som muliggjør, eller egentlig umuliggjør flere innlogginger samtidig, ligger i fila /etc/X11/Xsession.d/10skolelinux-one-login-per-host, der ligger også instruksjoner for hvordan dette scriptet skal startes; det startes ved å lage en såkalt "flagg-fil" med kommandoen

tjener:~# touch /etc/skolelinux/limit-logins

Dette er innholdet i den aktuelle fila som gjør jobben med å hindre at en bruker logger seg på flere tynnklienter samtidig.

more /etc/X11/Xsession.d/10skolelinux-one-login-per-host

#!/bin/sh
# Make sure a given user do not log into the same computer twice.
# When this is done on an LTSP server, the KDE configuration is likely
# to be destroyed.
#

# debug=1
log() {
    if [ "$debug" ] ; then
        echo "$@"
    fi
}

limit_logins()
{
    num=1
    numps=0
    u=$LOGNAME
    # Do not try to limit the root user
    if [ "$u" != "root" ] ; then
        num=`who | cut -d" " -f1 | grep "^$LOGNAME\$" | wc -l`
    fi

    log "Found $num connections for user $LOGNAME"

    if [ "$num" -gt 1 ] ; then
        numps=`ps -eu "$LOGNAME" | grep -v -e sleep -e COMMAND|wc -l`
        num=`expr $numps + 1`

    fi
    if [ $num -gt 1 ] ; then
        xmessage -buttons greit:0 -timeout 30 -center \
            "Du får IKKE lov til å logge på flere enn _en_ maskin omgangen!"
        exit 1
    fi
}

# Only enable this if the flag file exists.  When the code is tested
# and found to work fine, we can enable it for everyone. [pere 2003-02-21]
# To enable this script you must create an empty file with the command
# touch /etc/skolelinux/limit-logins
# [klaus 2003-09-06]

if [ -f /etc/skolelinux/limit-logins ] ; then
    limit_logins
fi

I.2.1. Kaste ut en bruker

Noen ganger er det ønskelig å kunne kaste ut en bruker, dette lille scriptet sørger for det.

#!/bin/sh
# Lagres f.eks som
#/usr/local/bin/ut
#Husk chmod 755 /usr/local/bin/ut
#Brukes på denne måten
#'ut brukernavn'
# script for å kaste ut en bruker
#

if [ $1 != "root" ]
then
for i in $(pgrep -u $1)
do
kill -9 $i
done
else
clear
echo "Kan ikke kaste ut root."
fi

Scriptet brukes på denne måten, for å kaste ut brukeren klaus,

ut klaus