Hallo Thorsten,

auch ich habe 144 Dateien in "/var/cache/linuxmuster/logins" die weder von
dem Skript "/etc/cron.daily/linuxmuster-base" noch händisch zu löschen sind.

Nach dem Ausführen von "/etc/cron.daily/linuxmuster-base" haben alle diese
Dateien den Zeitstempel mit der Uhrzeit zu der das Skript ausgeführt wurde.

Gruß

Alois

Am 7. Juli 2015 um 10:46 schrieb Jörg Richter <[email protected]>:

> Hallo Thorsten,
>
>
>
> > Am 07.07.2015 um 16:24 schrieb Thorsten Koslowski <
> [email protected]>:
> >
> > Hallo!
> >
> > Ich möchte mal laut denken, vielleicht kommt dann die Erkenntnis. Oder
> jemand von Euch kann mich erhellen.
> >
> >> Bleibt die Frage: Wer oder was hat das Attribut gesetzt? Ich jedenfalls
> nicht!
> >
> > Die letzte Aussage stimmt. Die Attribute werden scheinbar von Samba so
> gesetzt. Sind User an den Maschinen angemeldet haben diese Dateien folgende
> Attribute und Rechte:
> >
> > #: lsattr   /var/cache/linuxmuster/logins/*
> > ----i--------e- /var/cache/linuxmuster/logins/e111-pc01
> >
> > #: ls -l  /var/cache/linuxmuster/logins/*
> > -rw-rw-rw- 1 root root 3 Jul  7 09:40
> /var/cache/linuxmuster/logins/e111-pc01
> >
> > Melden sich die User ab, dann werden die Dateien ordentlich abgeräumt.
> > Soweit so gut.
> >
> > Morgens kommt das folgende Script und soll aufräumen:
> > #: cat -n /etc/cron.daily/linuxmuster-base
> >
> >    13    # checking for dead logins and remove them
> >    14    if check_empty_dir "$LOGINCACHE"; then
> >    15        echo "$LOGINCACHE is empty. Doing nothing."
> >    16        exit 0
> >    17    fi
> >    18
> >    19    cd $LOGINCACHE
> >    20
> >    21    for h in *; do
> >    22
> >    23        chattr -i "$h"
> >    24
> >    25        for u in `cat $h`; do
> >    26
> >    27            if ! smbstatus -b -d 0 -u "$u" | grep -w "$u" | grep
> -qw "$h"; then
> >    28
> >    29                locker="/tmp/.samba-userlog_${h}.lock"
> >    30                lockfile -l 5 "$locker"
> >    31                echo "Removing user $u from login cache ..."
> >    32                grep -vw "$u" "$h" > "$h.tmp"
> >    33                mv "$h.tmp" "$h"
> >    34                rm -f "$locker"
> >    35
> >    36            fi
> >    37
> >    38        done
> >    39
> >    40        if [ -s "$h" ]; then
> >    41
> >    42            chattr +i "$h"
> >    43
> >    44        else
> >    45
> >    46            locker="/tmp/.samba-userlog_${h}.lock"
> >    47            lockfile -l 5 "$locker"
> >    48            echo "Removing host $h from login cache ..."
> >    49            rm "$h"
> >    50            rm -f "$locker"
> >    51
> >    52        fi
> >    53
> >    54    done
> >
> > Was mir nicht einleuchten will:
> >
> > Warum wird in Zeile 40 überprüft ob das Login-File vorhanden ist und
> größer als 0? Wenn es da ist, warum wird es nicht gelöscht sondern das
> Attribute +i wieder gesetzt?
> >
> > OK, das Schreiben hat noch nicht die Erleuchtung gebracht. Entweder das
> Absenden bringt sie. Wenn nicht wäre es schön, wenn jemand von Euch die
> Zeit finden könnte sie mir zu bringen.
> >
> > Beste Grüße
> >
> > Thorsten
>
> Ab Zeile 27 werden ja nur solche User aus der Datei entfernt, die derzeit
> nicht angemeldet sind. Umgekehrt: Ist noch jemand angemeldet, so bleibt er
> in der Datei und diese wird nicht gelöscht.
>
> Vielleicht kommt da dieses Skript nicht mit den $-Zeichen zurecht. Schreib
> doch einfach mal testweise einen Dummy-User mit $ am Ende hinein und lass
> das Skript laufen.
>
> Viele Grüße
>
> Jörg Richter
>
> _______________________________________________
> linuxmuster-user mailing list
> [email protected]
> https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
>
_______________________________________________
linuxmuster-user mailing list
[email protected]
https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user

Antwort per Email an