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

Antwort per Email an