PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehle nach Logout ausführen



monstrous
29.03.12, 07:26
Hallo zusammen,

ich bin auf der Suche nach einer Lösung für folgendes Problem:

Nach dem Logout auf einem Debian-System soll die History der aktuellen Sitzung als E-Mail verschickt werden. Dafür habe ich folgendes in die /etc/bash.bash_logout (Die Berechtigungen reichen lustigerweise mit "-rw-r--r--", während die Datei root:root gehört) geschrieben:


file=/tmp/hist-$LOGNAME-`date +%Y%m%d`-$PPID
history -a $file

if [ -f $file ]
then
/usr/bin/mail -s "Sitzung von $LOGNAME auf $HOSTNAME (`date "+%Y-%m-%d %H:%M"`)" root < $file
/bin/rm $file
fi


Das System ist so konfiguriert, dass man sich nicht direkt als "root" per SSH anmelden darf, sondern nur als ein "xyz"-Benutzer. Dieses oben genannt Script funktioniert in folgenden Fällen:

1) Man meldet sich als Benutzer "xyz" an, macht etwas, meldet sich ab: -> xyz-Mail
2) Man meldet sich als Benutzer "xyz" an, wechselt per "su -" auf root, meldet sich ab (-> root-Mail), meldet sich wieder ab (-> xyz-Mail)

Was nicht funktioniert ist, wenn man sich als "xyz" anmeldet und dann statt einem "su -" nur ein "su" macht. Der root-Benutzer generiert danach keine Mail mehr. Ausschließlich die Sitzung vom "xyz"-Benutzer erzeugt eine Mail.

Das Script /etc/bash.bash_logout wird in dem Fall auch gar nicht aufgerufen vom root-Benutzer.

Ich habe auch schon versucht die Dateien als ~/.bash_logout und ~/.bash.bash_logout zu verwenden, aber auch diese werden nicht ausgeführt.

Hat jemand eine Idee, wie ich die History vom root-Benutzer nach einem Aufruf als "su" per Mail verschicken kann?

Vielen Dank,
monstrous

marce
29.03.12, 08:00
nach http://www.gnu.org/software/bash/manual/bash.html#Bash-Startup-Files wird beim Beenden von nicht-Login-Shells keines der Scripte ausgeführt.

Du müsstest also danach also dafür sorgen, daß nicht-Login-Shells nicht vorkommen...

monstrous
29.03.12, 08:01
Mein Quickfix war ein
alias su="su -", aber das bringt das Problem, dass ich kein su mehr auf einen anderen Benutzer (z. B. "abc") machen kann.

Wie unterbinde ich nicht-Login-Shells? ;)

marce
29.03.12, 08:17
su kannst Du dann immer noch machen - wieso auch nicht?

monstrous
30.03.12, 06:54
Ok, gar nicht mehr den Benutzer wechseln zu können war übertrieben. Aber ein "su - abc" führt dann zu "su - - abc", wobei "abc" dann weder als Datei oder Befehl gefunden wird.

marce
30.03.12, 07:12
Naja, die richtige Syntax solltest Du schon einhalten...

monstrous
30.03.12, 07:44
Und wie sähe die deiner Meinung nach aus?