Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Benutzerkonto mit Zeitbeschränkung

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Holger Wolf
Gast





BeitragVerfasst am: 22. Jul 2006 21:00   Titel: Benutzerkonto mit Zeitbeschränkung

Hallo,
ist es möglich ein Benutzerkonto mit einer Zeitbeschränkung zu belegen? Der User soll nur eine bestimmte Zeit am Tag sein Benutzerkonto nutzen können.

Danke

Holger
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 22. Jul 2006 23:16   Titel:

Wüsste nicht, dass das irgendwo vorgesehen ist, aber man kann es über eine selbstgebaute Loginshell bewerkstelligen, die zuerst die Uhrzeit prüft, und sich bei Erfolg dann nach /bin/bash execve't oder halt 1 (kein Login) als Exitcode zurückliefert.

Die Loginshell darf auch ein Skript sein. Es reicht also z.B.
Code:

#!/bin/bash

case $(date +%H) in
  18|19|20) exec /bin/bash;;
  *) exit 1;;
esac


als Loginshell.

Wenn es nur um X geht gibt es evtl. auch einen Displaymanager (kdm, gdm, wdm), der das kann.

Oder meinst du eine maximale Loginzeit?

Sinn der Übung?

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Holger Wolf
Gast





BeitragVerfasst am: 23. Jul 2006 9:53   Titel:

Hallo,
ich meinte die maximal login zeit, da ich ein wenig die Computerzeit meiner Kinder beschränken möchte.
 

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 23. Jul 2006 11:03   Titel:

Dann müsstest du Buch führen, wie lange in einem bestimmten Zeitraum der Computer genutzt wurde. (z.B. zwei Stunden täglich). Es ist ziemlich vertrackt, eine solche Sperre zu konstruieren -- und die Kinder finden die Lücken meist schnell heraus. Prinzipiell geht das so:

1. Bei jedem Login einen Timer starten.
2. Alle Minute halt 1 Minute hinzuzählen.
3. Bei Überschreiten der Maximalsumme keine Logins mehr zulassen, sowie alle Prozesse des Benutzers beenden.
4. Die Summe für jeden Tag neu berechnen.

Mit X wird das etwas komplizierter.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Marco Gerber
Gast





BeitragVerfasst am: 23. Jul 2006 12:34   Titel:

guten Tag

Ich habe kurz ein Script geschrieben, welches diese Aufgabe erledigt. In der aktuellen Fassung kann der Benutzer die Minuten angeben, welche der Computer pro Tag unabhaengig von wem er benutzt wird, verwendet werden kann.
Nach Ablauf der Zeit erscheint eine Meldung mit dem Hinweis, dass der Computer in einer vom Benutzer definierten Zeit heruntergefahren wird (so bleibt Zeit um Programme zu beenden).
Ist das Tageslimit (in Minuten) abgelaufen, wird der Computer heruntergefahren, und kann erst am naechsten Tag wieder verwendet werden.

Das Script laesst sich natuerlich an spezielle Wuensche anpassen.

Code:

#!/bin/bash
# kindersicherung
# written by Marco Gerber

NUM_OF_MINUTES="60"      # Anzahl der Minuten, welche der Rechner pro Tag verwendet
                        # werden darf.
TRESHOLD_MINUTES="10"    # Anzahl Minuten, die zwischen dem Hinweis, dass der Computer
                        # ausgeschaltet wird, bis er heruntergefahren wird.

FILE_REMAINING_MINUTES="/etc/timedelay/remaining_minutes"
FILE_LAST_DATE="/etc/timedelay/lastdate"

LASTDATE="$(<${FILE_LAST_DATE})"
ACTDATE="`date +%m%d`"

if [ ${LASTDATE} -lt ${ACTDATE} ] ; then # ein neuer Tag
 echo ${NUM_OF_MINUTES} > ${FILE_REMAINING_MINUTES}
 echo ${ACTDATE} > ${FILE_LAST_DATE}
fi

REMAINING_MINUTES=$(<${FILE_REMAINING_MINUTES})


while [ ${REMAINING_MINUTES} -ge ${TRESHOLD_MINUTES} ] ; do
  sleep 60
  let "REMAINING_MINUTES -= 1"
  echo ${REMAINING_MINUTES} > ${FILE_REMAINING_MINUTES}
done

xmessage "Der Computer wird in ${TRESHOLD_MINUTES} Minute(n) heruntergefahren" -display :0.0 &

sleep $((${TRESHOLD_MINUTES} * 60))
/sbin/shutdown -h now #die


Installation:
Code:

$ su
$ mkdir /etc/timedelay
$ echo 60 > /etc/timedelay/remaining_minutes #Anzahl MInuten
$ date +%m%d > /etc/timedelay/lastdate
$ chmod -R g-w /etc/timedelay
$ chmod -R o-w /etc/timedelay
$ chmod +x <script> # <script> durch den Namen dieses Scripts ersetzen


Es wird das Programm "xmessage" benoetigt, welches die Warnung der verbleibenden Minuten ausgibt.
Das Script sollte per Runlevelscript gestartet werden.
Auf Wunsch kann man es dahingehend erweitern, dass es erst startet, wenn ein Benutzer eingeloggt ist (ansonsten startet es einfach).

Die Werte im Script lauten:
NUM_OF_MINUTES
TRESHOLD
Diese sollten dann noch angepasst werden.

hth

Marco Gerber
 

Holger Wolf
Gast





BeitragVerfasst am: 23. Jul 2006 12:45   Titel:

Danke für die Hilfe.

Viele Grüße

Holger
 

Marco Gerber
Gast





BeitragVerfasst am: 23. Jul 2006 12:47   Titel:

noch ein Hinweis:

Du solltest dann noch das BIOS mit einem Passwort absichern, damit die Zeit nicht einfach verstellt werden kann.
(sonst ist alles fuer die Katz ;})
Und, im obigen Script die Zeile mit xmessage muss alles auf einer Zeile sein, also bis und mit dem & (Darstellungsfehler)


hth

Marco
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy