Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Mailman-History
Masterplan
- Informationsverteilung an Neubienen
- Rechteentzug bei Vereinsaustritt
Skizze
Mitglieder werden auf den Mailinglisten angemeldet und bei Austritt abgemeldet. Die Aenderung der Listen enthaelt Hinweise fuer die Systemadminsitration (Privilegienrueckbau) und eine Informationssystem fuer Neumitglieder.
Plan I
History fuer Listenmitgliedschaften bereitstellen.
Skizze
- Taeglich wird (mit list_members) die Liste der Subscriber gedumpt.
- Diese wird in eine Datei geschrieben, die unter RCS steht.
- Die Aenderungen zum Vortag werden festgestellt
- Historie anhand der System-Backups restaurieren
- watch-lists
#!/bin/bash DIR=/var/lib/watch-lists LISTS=" mitglieder mitglieder-announce " for i in $LISTS ; do FILE="$DIR/$i" if [ ! -e "$FILE" ]; then mkdir -p $DIR mkdir -p $DIR/RCS touch $FILE ci -u -q $FILE < /dev/null fi co -q -l $FILE list_members $i | sort | uniq > $FILE rcsdiff -q $FILE ci -q -u -m. $FILE done
- /etc/cron.d/watch-lists
10 07 * * * root /usr/local/bin/watch-lists
Das Diff wird cron an admin@ vermailt.
Die History wird anhand der Datensicherungen restauriert und im RCS abgelegt. Dafuer werden die Listenmitglieder aus der config.pck-Datei extrahiert und wird das RCS-Eincheckdatum auf den Zeitpunkt der Sicherung gesetzt.
#!/bin/bash
#
# fake rcs history for mailman list files:
# reverse history from backed up pickle files
#
if false ; then
find ~/sys01 ~/sys02 -type f | awk -F'[/.]' '{ print $0,$4,$6,$11 }' | (
while read file sys date list ; do
# echo "$file*$sys*$date*$list"
~chris/bin/unpickle.py $file |
awk '$1 == "members" {print $0}' |
sed 's/^.*{//;s/}$//;s/,/\n/g;' |
sed 's/'"'"':.*$//;s/^.*'"'"'//' |
sort -u |
tee ~/sysall/$sys.$list.$date
done
)
fi
rm -f ~/sysall/mitglieder ~/sysall/mitglieder-announce
rm -f ~/sysall/mitglieder,v ~/sysall/mitglieder-announce,v
touch ~/sysall/mitglieder ~/sysall/mitglieder-announce
ci -u -d"2011-06-13 00:00:00" ~/sysall/mitglieder < /dev/null
ci -u -d"2011-06-13 00:00:00" ~/sysall/mitglieder-announce < /dev/null
set -xv
for i in ~/sysall/mm/sys* ; do
read sys list datetime <<< ${i//\./ }
read date time <<< ${datetime//\-/ }
#echo "$sys*$date*$time*$list"
year=${date:0:4}
mon=${date:4:2}
day=${date:6:2}
h=${time:0:2}
m=${time:2:2}
s=${time:4:2}
# echo "$year*$mon*$day"
# echo "$h*$m*$s"
outdate="$year-$mon-$day $h:$m:$s"
echo $outdate
co -l ~/sysall/$list
cat $i > ~/sysall/$list
ci -u -m. -d"$outdate" ~/sysall/$list
done
Plan II
Privilegienrueckbau.
Skizze
- Feststellen, welche Privilegien existieren
- Privilegien entziehen
- find_user
#!/bin/bash # find user assets inside the system # you may want this to get rid of a closed account USERNAME="$1" grep "$1" /etc/passwd /etc/shadow /etc/group /etc/sudoers /etc/aliases for i in $( list_lists | awk '{print $1}' ) ; do X=$( list_admins $i | grep "$1" ) if [ -n "$X" ]; then echo $i "$X" fi done ls -ld /home/"$1" for i in $( list_lists | awk '{print $1}' ) ; do X=$( list_members $i | grep "$1" ) if [ -n "$X" ]; then echo $i "$X" fi done
Das ist gerade noch recht grob, aber hilft trotzdem, Zugaenge nicht zu uebersehen.
Plan III
Information fuer Neumitglieder. Den Leuten gleich zu Anfang „alles“ „reinzudruecken“ tut nicht.
Skizze
- Im Laufe der Zeit nach dem Eintritt die Informationen in Haeppchen zukommen lassen.
- Dazu muss man wissen, wen es neues gibt und seit wann.
- Nach vorgegebenem Zeitplan Mails zusenden.
- find_user
#!/bin/bash /usr/local/bin/make_it_happen
