[linux-l] Anfängerhilfe Script

Boris Kirkorowicz boris-ml07 at kirk.de
Sa Okt 2 13:07:00 CEST 2010


Hallo,
mittlerweile habe ich mein Script lauffähig:

==============================/sbin/timectrl.sh==============================
#!/bin/sh
# Fährt den Rechner nach heutiger Höchstzeit in $dailytime herunter

# Variablen übersichtlich gleich zu Anfang
logfile="/var/log/timectrl/$USER.log"
dailytime=60

# Initiale Dateianlage für den ersten Lauf
if [ -e $logfile ]; then
	# Datei '$logfile' existiert bereits.
	nop
	else
	# Datei' $logfile' wird jetzt angelegt.
	sudo /sbin/logtctrl.sh DATE=$(date +%Y%m%d) TIME=$dailytime $logfile
fi

while true
do
	# Neuer Tag - neues Glück
	source $logfile
	if [ $(date +%Y%m%d) -gt $DATE ]; then
		TIME=$dailytime
	fi

	# ab jetzt wird gezählt
	TIME=$((TIME-1))
	if [ $TIME -lt 0 ]; then
		break
	fi
	DATE=$(date +%Y%m%d)
	sudo /sbin/logtctrl.sh DATE=$(date +%Y%m%d) TIME=$TIME $logfile
	sleep 60
done

sleep 30
sudo /sbin/shutdown -h 5 "Feierabend: speichern und beenden!"
==============================/sbin/timectrl.sh==============================

Das Hilfsscript /sbin/logtctrl.sh soll den Usernamen als Dateinamen zur
Unterscheidung einbringen:
==============================/sbin/logtctrl.sh==============================
#!/bin/sh
# schreibt in die Datei /var/log/$3
# $3 ist üblicherweise /var/log/$USERNAME.log

echo $1 $2 > $3
exit
==============================/sbin/logtctrl.sh==============================


Gestartet wird das Ganze aus ~/.kde/Autostart/autostart.sh:
/sbin/timectrl.sh

Damit die Dinge auch ausgeführt werden, habe ich das Verzeichnis
/var/log/timectrl angelegt und mit visudo die Berechtigungen angepasst:

%users  ALL = (root) NOPASSWD: /sbin/shutdown -h *
%users ALL = (root) NOPASSWD: /sbin/logtctrl.sh *
%users ALL = (root) NOPASSWD: /sbin/timectrl.sh

Das scheint jetzt wie gewünscht zu funktionieren.
Schwachpunkt bei der Sache ist der Aufruf, der vom User einfach gelöscht
werden kann, wenn er ihn entdeckt. Wie kann ich den Aufruf so gestalten,
dass er beim Login passiert und für den User nicht umgehbar oder
abschaltbar ist?


Gruss                    Greetings
       Boris Kirkorowicz

-- 
Falls Ihre E-Mail versehentlich im Spamfilter haengengeblieben zu sein
scheint, bitte das Formular unter http://www.kirk.de/mail.shtml nutzen.
If your eMail seems to be caught by the SPAM filter by mistake, please
use the form at http://www.kirk.de/mail.shtml to drop me a note.



Mehr Informationen über die Mailingliste linux-l