Hallo, versuch grade einen user zu löschen der mal zu Testzwecken bei irgend einem Problem angelegt wurde.
|l|ogin als user und logoout der console brachte nichts .. Tipps aus dem i-Net brachten auch nichts:
vs2801:~# |pkill -KILL -u buum| vs2801:~# vs2801:~# userdel buum userdel: Benutzer buum ist derzeit angemeldet vs2801:~# deluser buum Entferne Benutzer »buum« ... Warning: group `buum' has no more members. userdel: Benutzer buum ist derzeit angemeldet /usr/sbin/deluser: »/usr/sbin/userdel buum« gab den Fehlercode 8 zurück. Programmende. vs2801:~# fuser -k buum Cannot stat buum: Datei oder Verzeichnis nicht gefunden Cannot stat buum: Datei oder Verzeichnis nicht gefunden Cannot stat file /proc/1/fd/10: Keine Berechtigung
was kann da los sein und was kann ich dagegen tun?
Danke und beste Grüße, Rob
On 05.04.11 Robert (punk@streber24.de) wrote:
Hi,
vs2801:~# fuser -k buum Cannot stat buum: Datei oder Verzeichnis nicht gefunden Cannot stat buum: Datei oder Verzeichnis nicht gefunden Cannot stat file /proc/1/fd/10: Keine Berechtigung
was kann da los sein und was kann ich dagegen tun?
ps ax|grep buum
Sollte zumindest ein shell liefern. Genau weiß ich leider nicht, wo das System hinschreibt, wer wann an-/abgemeldet wurde. Was sagt last?
H.
Hallo und Danke schonmal für die vielen Tipps,
Hilmar Preuße, Andreas, Fabian schrieb:
ps ax|grep buum
vs2801:~# ps ax|grep buum 21820 pts/8 S+ 0:00 grep buum
vs2801:~# ps -eaf | grep bumm root 11967 765 0 08:03 pts/8 00:00:00 grep bumm
in top ist auch nichts von buum zu sehen
vs2801:~# lsof -u bumm lsof: can't get UID for bumm lsof 4.78
(lsof war aber noch nicht installiert, falls das wichtig ist)
Was sagt last?
geht wohl bei mir nicht :-/
last: /var/log/wtmp: No such file or directory Perhaps this file was removed by the operator to prevent logging last info.
vs2801:~# apt-get remove last Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Lese Status-Informationen ein... Fertig Paket last ist nicht installiert, wird also auch nicht entfernt 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 35 nicht aktualisiert. vs2801:~# apt-get install last Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Lese Status-Informationen ein... Fertig Paket last ist nicht verfügbar, wird aber von einem anderen Paket referenziert. Das kann heißen, dass das Paket fehlt, dass es veraltet ist oder nur aus einer anderen Quelle verfügbar ist. Doch die folgenden Pakete ersetzen es: sysvinit-utils E: Paket last hat keinen Installationskandidaten
Was sagt "ps -U buum"?
vs2801:~# ps -U buum PID TTY TIME CMD
- Sicherheit jenseits der root-Rechte: Ein zum Zwecke erhöhter
Sicherheit eingebauter Extramechanismus jenseits traditioneller Unix-Rechte erlaubt dir das Löschen nicht.
--> Sorry, den Satz verstehe ich nicht.
beste Grüße, Robert
Am Wed, 06 Apr 2011 08:10:03 +0100 schrieb Robert sportfreund_robert@gmx.de:
Hallo,
Doch die folgenden Pakete ersetzen es: sysvinit-utils E: Paket last hat keinen Installationskandidaten
Das ist doch ein guter Hinweis - /usr/bin/last wird vom Paket "sysvinit-utils" bereitgestellt -> installieren Ob damit allerdings Informationen zu Logins von VOR Installation des Paketes abrufbar sind, weiß ich nicht.
- Sicherheit jenseits der root-Rechte: Ein zum Zwecke erhöhter
Sicherheit eingebauter Extramechanismus jenseits traditioneller Unix-Rechte erlaubt dir das Löschen nicht.
--> Sorry, den Satz verstehe ich nicht.
Bezieht sich wohl auf Sachen wie SELinux etc., wahrscheinlich nicht einschlägig, sonst wüsstest du vermutlich, dass du es benutzt.
Btw. ist wohl was mit deiner Zeit nicht in Ordnung, du hast die Mail angeblich 08:10:03 +0100 geschrieben, rund 50 Minuten, bevor sie bei mir ankam. Richtig wäre wohl +0200, da du vermutlich in Deutschland lebst und damit gerade MESZ herrscht.
Grüße,
Carsten
Hallo Robert,
On Wed, Apr 06, 2011 at 08:10:03 +0100, Robert wrote:
vs2801:~# ps ax|grep buum 21820 pts/8 S+ 0:00 grep buum
vs2801:~# ps -eaf | grep bumm root 11967 765 0 08:03 pts/8 00:00:00 grep bumm
Okay, ein kleiner Test mit Debian Lenny in qemu-kvm: User "dummy" ist eingerichtet, dieser loggt sich auf tty2 ein, startet eine screen-Sitzung, darin startet er top.
lentest:~# grep dummy /etc/passwd dummy:x:1001:1001:Crash T. Dummy,,,:/home/dummy:/bin/bash
lentest:~# ps aux | grep dummy dummy 2418 0.0 2.2 5492 2796 tty2 S 09:22 0:00 -bash dummy 2453 0.0 0.7 4104 980 tty2 S+ 09:22 0:00 screen dummy 2454 0.0 0.8 4236 1116 ? Ss 09:22 0:00 SCREEN dummy 2455 0.0 2.1 5488 2752 pts/0 Ss 09:22 0:00 /bin/bash dummy 2466 0.1 0.8 2388 1072 pts/0 S+ 09:23 0:00 top root 2479 0.0 0.5 3140 748 tty1 S+ 09:33 0:00 grep dummy
Nun versucht root, den User dummy zu loeschen.
lentest:~# userdel dummy userdel: Benutzer dummy ist derzeit angemeldet
lentest:~# pkill -KILL -u dummy (Uebrigens, erst -TERM und dann -KILL ist besser, dazu spaeter mehr)
lentest:~# userdel dummy userdel: Benutzer dummy ist derzeit angemeldet
lentest:~# deluser dummy Entferne Benutzer dummy ... Warning: group `dummy' has no more members. userdel: Benutzer dummy ist derzeit angemeldet /usr/sbin/deluser: `/usr/sbin/userdel' dummy gab den Fehlercode 8 zurueck. Programmende.
lentest:~# grep dummy /etc/passwd dummy:x:1001:1001:Crash T. Dummy,,,:/home/dummy:/bin/bash
lentest:~# last | head -n 3 dummy tty2 Wed Apr 6 09:22 - 09:38 (00:15) dummy tty2 Wed Apr 6 09:22 - 09:22 (00:00) root tty1 Wed Apr 6 09:20 still logged in
Laut last ist der User dummy nicht mehr eingeloggt. Na sowas.
Dass /var/log/wtmp bei Dir fehlt, koennte damit zusammenhaengen, dass es ein vserver ist (oder interpretiere ich den hostnamen "vs2801" falsch?). Auch das hier muesste vserver-spezifisch sein: vs2801:~# fuser -k buum Cannot stat file /proc/1/fd/10: Keine Berechtigung
Aber zurueck zu userdel.
lentest:~# strace -o log userdel dummy
Untersuchen der strace-Ausgabe in log zeigt, dass userdel die Datei /var/run/utmp oeffnet. Diese Datei zeigt die momentan eingeloggten User, waehrend /var/log/wtmp die Login-History speichert. Aus /var/run/utmp bezieht auch pinky (rein lokal arbeitende Version des Kommandos finger) seine Information. Auch pinky zeigt den User dummy noch als eingeloggt an:
lentest:~# pinky Login Name TTY Idle When Where root root *tty1 Apr 6 09:20 dummy Crash T. Dummy ?pts/0 ??? Apr 6 09:22 :tty2:S.0
Das Problem ist also, dass der Login-Status aus /var/run/utmp nicht korrekt entfernt wurde. Und jetzt kommen wir zurueck zum pkill -KILL. Prozesse immer gleich mit Signal 9 (SIGKILL) zu beenden ist Mist, typisches Halbwissen aus Webforen. SIGKILL hindert den jeweiligen Prozess daran sich geordnet zu beenden, Temporaerdateien zu loeschen, etc.
Statt gleich mit pkill -KILL Rambo zu spielen, erstmal SIGTERM und _danach_ SIGKILL schicken, dann klappt's auch mit /var/run/utmp.
lentest:~# pkill -TERM -u dummy lentest:~# pkill -KILL -u dummy lentest:~# pinky Login Name TTY Idle When Where root root *tty1 Apr 6 09:20
lentest:~# userdel dummy
Na geht doch.
Ansonsten willst Du Dir die Manpage von userdel durchlesen, speziell die Option -f wird Dich interessieren.
Gruss, Chris
2011-04-05 21:12, Robert skrev:
vs2801:~# |pkill -KILL -u buum|
pkill hat also erfolgreich an alle Prozesse von User buum das Kill-Signal zugestellt. Aber hat es diese auch gekillt? Zombieprozesse können diese Behandlung überleben. Was sagt "ps -U buum"?
vs2801:~# fuser -k buum Cannot stat buum: Datei oder Verzeichnis nicht gefunden Cannot stat buum: Datei oder Verzeichnis nicht gefunden
Wenn die *Datei* buum dort nicht exisitert, dann kann fuser auch keine Prozesse finden, die auf sie zugreifen.
was kann da los sein und was kann ich dagegen tun?
1) Der User ist noch da: Jedenfalls im (u|w)tmp. Was sagt 'last buum'? (Um zu testen, dass utmp bei dir nicht deaktiviert ist vgl. mit 'last normalerLoginName').
2) Sicherheit jenseits der root-Rechte: Ein zum Zwecke erhöhter Sicherheit eingebauter Extramechanismus jenseits traditioneller Unix-Rechte erlaubt dir das Löschen nicht.
Beste Grüße Fabian
was kann da los sein und was kann ich dagegen tun?
was sagt ps -eaf | grep bumm ????? oder lsof -u bumm ?????
weil woher willste sichersein das der kill ordentlich war und das fusre -k zeigt kernel verbindung (wenn ich es richtig verstanden habe)
gruß andreas
Danke und beste Grüße, Rob
Am Dienstag, 5. April 2011, 21:12:23 schrieb Robert:
Hallo, versuch grade einen user zu löschen der mal zu Testzwecken bei irgend einem Problem angelegt wurde.
|l|ogin als user und logoout der console brachte nichts .. Tipps aus dem
i-Net brachten auch nichts:
vs2801:~# |pkill -KILL -u buum| vs2801:~# vs2801:~# userdel buum userdel: Benutzer buum ist derzeit angemeldet vs2801:~# deluser buum Entferne Benutzer »buum« ... Warning: group `buum' has no more members. userdel: Benutzer buum ist derzeit angemeldet /usr/sbin/deluser: »/usr/sbin/userdel buum« gab den Fehlercode 8 zurück. Programmende. vs2801:~# fuser -k buum Cannot stat buum: Datei oder Verzeichnis nicht gefunden Cannot stat buum: Datei oder Verzeichnis nicht gefunden Cannot stat file /proc/1/fd/10: Keine Berechtigung
was kann da los sein und was kann ich dagegen tun?
Danke und beste Grüße, Rob
(bzgl. auch der anderen Mails)
grep buum /etc/passwords grep buum /etc/groups sind die Stelllen, wo (ohne ldap o.ä.) nach der UID, besser der Übersetzung des Namens in eine Zahl, geschaut wird. Wenn dort nichts dergleichen steht, kennt das System buum nicht . (Wurde z.B. bereits gelöscht)
Wenn aber Prozesse unter der alten (gelöschten!) numerischen UID noch laufen sollten, hast Du mit ps -ax | grep buum natürlich keine Chance. Ebensowenig mit lsof usw.
Vielleicht gibt es noch ein /home/buum. Dort wäre mit stat /home/buum UID, GID u.ä. rauszubekommen.
Andere Möglichkeit: ps ax h o uid | sort -un im Vergleich zu cut -d":" -f3 /etc/passwd | sort -n
Dann wären als Ergänzung zu userdel diese Verzeichnisse / Prozesse noch "manuell" zu entfernen. Vielleicht hilft das weiter ...
Die ganze Sache kann dadurch kompliziert werden, daß es keine Regel gibt, die mehrfach vergebene numerische UID's verbietet. Es kann durchaus vorkommen, daß die lokale numerische UID des (ehemaligen) Users buum nun zu einem ldap-Account gehört. Für solche Fälle "FF" wie "viel Vergnügen". (Der Spruch stammt aus einer Zeit, wo eine gelöschte und später nicht korrekt geschriebene / erkannte (E)EPROM-Zelle diesen Wert enthielt, der als OP-Code ausgeführt ein Reset bewirkte, was natürlich schwer zu finden war.)
Bernhard
lug-dd@mailman.schlittermann.de