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