Hallo Alois,

probier mal Folgendes:

Ab Zeile 27 steht bei mir in /etc/cron.daily/linuxmuster-base:

  if ! smbstatus -b -d 0 -u $u | grep -qw $u | grep -qw $h; then

         locker=/tmp/.samba-userlog_${h}.lock
         lockfile -l 5 $locker
         echo "Removing user $u from login cache ..."
         grep -vw $u $h > $h.tmp
         mv $h.tmp $h
         rm -f $locker

  fi


Die Zile mit dem grep-Befehl muss modifiziert werden und darüber wird eine Zeile eingefügt:

         ....
         echo "Removing user $u from login cache ..."
         uu=${u/\$/'\$'}
         grep -vw "$uu" $h > $h.tmp
         mv $h.tmp $h
         ...

Wie immer gilt: Vorher eine Kopie der Datei sichern.

Anschließend müsstest Du die Datei ausführen. Danach sollten nur noch solche User in den Login-Cache-Dateien stehen, die auch tatsächlich gerade angemeldet sind (Ausgabe von smbstatus -b)


Viele Grüße

Jörg



Am 09.07.2015 um 21:33 schrieb Alois Raunheimer:
Hallo Jörg,

da ich Skripte nicht sonderlich gut "lesen" kann wäre ich Dir dankbar,
wenn Du genauer schreiben könntest wo man die Zeilen hier veröffentlicht

http://www.linuxmuster.net/flyspray/task/470

eintragen muss.

Gruß und Danke

Alois

Am 9. Juli 2015 um 10:36 schrieb Alois Raunheimer
<[email protected] <mailto:[email protected]>>:

    Hallo Jörg,

    das hatte ich schon in der Nacht nachgesehen. Da stehen idR die
    Maschinenaccounts - also mit Dollar-Zeichen - drin, manchmal auch
    Usernamen, oder beides.

    Gruß

    Alois

    Am 9. Juli 2015 um 09:41 schrieb Jörg Richter <[email protected]
    <mailto:[email protected]>>:

        Hallo Alois,

        bei mir gibt es keine Probleme mit Minuszeichen, weder im
        PC-Namen noch im Loginnamen. Problematisch ist nur das $-Zeichen
        bei den Maschinenaccounts.

        Könntest Du mal /etc/cron.daily/linuxmuster-base manuell
        aufrufen (nicht, wenn gerade jemand arbeitet) und dann den
        Inhalt einer der nicht gelöschten Dateien mailen?

        Viele Grüße

        Jörg


        Am 09.07.2015 um 14:56 schrieb Alois Raunheimer:

            Hallo Jörg,

            hast Du auch eine Lösung für die Fälle mit dem Minuszeichen?

            Gruß

            Alois

            Am 9. Juli 2015 um 08:37 schrieb Alois Raunheimer
            <[email protected]
            <mailto:[email protected]>
            <mailto:[email protected]
            <mailto:[email protected]>>>:

                 Hallo Jörg,

                 bei mir war kein einziges $-Zeichen im Namen. Deshalb
            vermute ich
                 dass auch die Bindestriche problematisch sind.

                 Gruß

                 Alois

                 Am 9. Juli 2015 um 03:15 schrieb Jörg Richter
            <[email protected] <mailto:[email protected]>
                 <mailto:[email protected] <mailto:[email protected]>>>:

                     Hallo zusammen,

                     ich habe es nun selbst probiert: Das Problem sind
            die $-Zeichen,
                     die vom grep-Befehl nicht gefunden werden. Ticket
            mit Lösung:

            http://www.linuxmuster.net/flyspray/task/470


                     Viele Grüße

                     Jörg Richter


                     Am 09.07.2015 um 06:46 schrieb Alois Raunheimer:

                         aber nach
            "/etc/cron.daily/linuxmuster-base"sind alle wieder
                         unlöschbar
                         für root da :-(

                         Da muss wohl jemand aus der
            "Entwicklungsabteilung" drüber
                         schauen.

                         Gruß und gute Nacht

                         Alois

                         Am 9. Juli 2015 um 00:42 schrieb Alois Raunheimer
                         <[email protected]
            <mailto:[email protected]>
                         <mailto:[email protected]
            <mailto:[email protected]>>
                         <mailto:[email protected]
            <mailto:[email protected]>
                         <mailto:[email protected]
            <mailto:[email protected]>>>>:

                              Nochmal ich

                              mit "chattr -i *" im Verzeichnis
                         "/var/cache/linuxmuster/logins"
                              kann man anschließend alle Dateien löschen.

                              Gruß

                              Alois

                              Am 9. Juli 2015 um 00:39 schrieb Alois
            Raunheimer
                              <[email protected]
            <mailto:[email protected]>
                         <mailto:[email protected]
            <mailto:[email protected]>>
                         <mailto:[email protected]
            <mailto:[email protected]>
                         <mailto:[email protected]
            <mailto:[email protected]>>>>:

                                  Hier

            http://www.admin-magazin.de/News/Tipps/ADMIN-Tipp-Unloeschbare-Files

                                  habe ich eine mögliche Lösung des
            Problems gefunden.

                                  Nach "chattr -i r426-c16" konnte ich
            die Datei
                         "r426-c16"
                                  löschen. Nur wer setzt solche Attribute?

                                  Gruß

                                  Alois

                                  Am 9. Juli 2015 um 00:29 schrieb Alois
            Raunheimer
                                  <[email protected]
            <mailto:[email protected]>
                         <mailto:[email protected]
            <mailto:[email protected]>>
                         <mailto:[email protected]
            <mailto:[email protected]>
                         <mailto:[email protected]
            <mailto:[email protected]>>>>:

                                      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]
            <mailto:[email protected]> <mailto:[email protected]
            <mailto:[email protected]>>
                         <mailto:[email protected]
            <mailto:[email protected]> <mailto:[email protected]
            <mailto:[email protected]>>>>:

                                          Hallo Thorsten,



                                           > Am 07.07.2015 um 16:24
            schrieb Thorsten
                         Koslowski

              <[email protected]
            <mailto:[email protected]>
                         <mailto:[email protected]
            <mailto:[email protected]>>

              <mailto:[email protected]
            <mailto:[email protected]>

                         <mailto:[email protected]
            <mailto:[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