Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

Lite tips och trix för terminalservers på linux.

Det finns lite småsaker som kan vara lite trixiga på en terminalserver i Linux.

Vill man se alla inloggade användare är kommandot who väldigt trevligt.

För att få ut det i lättläst format kan man göra såhär:

who | awk '{print $1}' | sort | grep -v root

Att se antalet inloggade användare är också enkelt:

who | wc -l

Vill man sparka en användare är det inte så konstigt.

skill -u användarnamn

För att skicka valfri fil till alla användares skrivbord, nya som redan existerande kan man använda ett ypperligt script som kommer från k12ltsp distributionen. Man kör det bara som distribute filnamn så skickas filen till /etc/skel/Desktop och alla användares skrivbord

while [ $# -gt 0 ]
do
        FILE="$1"
        if [ -f "$FILE" ]
        then
                # save a copy in /etc/skel/Desktop for new users
                if [ -d /etc/skel/Desktop ]
                then
                        cp -a "$FILE" /etc/skel/Desktop/
                fi

<code>
                DEST="`basename \"$FILE\"`"


                <code># find all of the subdirectories under /home
                getent passwd | cut -d: -f6 | while read U
                do
                        # copy new-style Desktop
                        if [ -d "$U"/Desktop/ ]; then
                                cp -a "$FILE" "$U"/Desktop/
                                chown --reference="$U"/Desktop "$U"/Desktop/"$DEST"
                        fi

                        <code># copy old-style .gnome-desktop
                        if [ -d "$U"/.gnome-desktop/ ]; then
                                cp -a "$FILE" "$U"/.gnome-desktop/
                                chown --reference="$U"/.gnome-desktop "$U"/.gnome-desktop/"$DEST"
                        fi
                done
        fi
        shift
done

Jag har slängt ihop en enkel batchfil som tillsammans med zenity presenterar dessa saker grafiskt så att även icke linuxadmins klarar av att hantera en linux terminalserver. Den är inte klar ännu men någon kanske kan ha nytta av verktyget.

#!/bin/sh
# A simple script to handle simple tasks on a Linux Terminal Server
     do_kick()
             {
             users=`who | awk '{print $1}' | sort | grep -v root`
             burt=`zenity --list --column=$users --text="Välj användare som skall sparkas ut."`
             gnomesu -c "skill -u $burt"
             }
    do_clean()
             {
             zenity --title=TSadmin --entry --text "Användarens inloggningsnamn?"
             rm -rf /home/$1/.*
             cp -r /etc/skel/* /home/$1
             }
   do_loggedin()
             {
             who | awk '{print $1}' | sort | grep -v root | zenity --title="inloggade användare" --text-info
             }
   do_usercount()
             {
             zenity --info --text "Det är `who | wc -l` användare inloggade just nu"
             }
   do_skicka_ikon()
             {
             zenity --info --text "Välj den fil som skall läggas ut på alla användares skrivbord."
             FILE=`zenity --file-selection`
             gnomesu --command=`/usr/bin/push-icons-to-users-desktops $FILE`
             }
                                  #
                          # lets the user choose what task to do
                          #
   val=`zenity --list --column=Välj Sparka Rensa Inloggade Antal Alla-Skrivbord --text="Hantera terminalservern"`
                          #
                          #evaluates the users choice and acts after what it is
                          #
   case "$val" in
              Sparka)
                        do_kick
                        exit 3
                        ;;
              Rensa)
                         do_clean
                         exit 3
                         ;;
             Inloggade)
                         do_loggedin
                         exit 3
                         ;;
             Antal)
                         do_usercount
                         exit 3
                         ;;
             Alla-Skrivbord)
                         do_skicka_ikon
                         exit 3
                         ;;
esac

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

pettssons bild

Riktigt najs.
Har bara en sak att klaga på, du har blandat svenska och engelska ord i skriptet.
annars så var det riktigt najs

In Coffea veritas - Sanningen finns i kaffet.

danielhedbloms bild

Jag vet, är inte riktigt klar med det än. Har ett gäng fler funktioner jag ska lägga in innan jag städar. Tänkte få in profilerna för Mozilla, OpenOffice och gnome också så att man kan ställa in dessa med en template user.