Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 19. Nov 2018 20:28

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Benutzerkonto mit Zeitbeschränkung
BeitragVerfasst: 22. Jul 2006 21:00 
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 22. Jul 2006 23:16 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23. Jul 2006 9:53 
Hallo,
ich meinte die maximal login zeit, da ich ein wenig die Computerzeit meiner Kinder beschränken möchte.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23. Jul 2006 11:03 
Offline
Benutzeravatar

Registriert: 11. Feb 2006 19:10
Beiträge: 3569
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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23. Jul 2006 12:34 
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="$&#40;<$&#123;FILE_LAST_DATE&#125;&#41;"
ACTDATE="`date +%m%d`"

if &#91; $&#123;LASTDATE&#125; -lt $&#123;ACTDATE&#125; &#93; ; then # ein neuer Tag
 echo $&#123;NUM_OF_MINUTES&#125; > $&#123;FILE_REMAINING_MINUTES&#125;
 echo $&#123;ACTDATE&#125; > $&#123;FILE_LAST_DATE&#125;
fi

REMAINING_MINUTES=$&#40;<$&#123;FILE_REMAINING_MINUTES&#125;&#41;


while &#91; $&#123;REMAINING_MINUTES&#125; -ge $&#123;TRESHOLD_MINUTES&#125; &#93; ; do
  sleep 60
  let "REMAINING_MINUTES -= 1"
  echo $&#123;REMAINING_MINUTES&#125; > $&#123;FILE_REMAINING_MINUTES&#125;
done

xmessage "Der Computer wird in $&#123;TRESHOLD_MINUTES&#125; Minute&#40;n&#41; heruntergefahren" -display &#58;0.0 &

sleep $&#40;&#40;$&#123;TRESHOLD_MINUTES&#125; * 60&#41;&#41;
/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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23. Jul 2006 12:45 
Danke für die Hilfe.

Viele Grüße

Holger


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 23. Jul 2006 12:47 
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


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de