Ich habe ein Problem auf dem Server (CentOS 6, Plesk 11.5), auf dem ein bestimmter Benutzer einen Massenmailer verwendet und unsere IP-Adresse auf die schwarze Liste setzt. Ich habe versucht, diesen Benutzer zu löschen, indem ich:
/usr/sbin/userdel test
Es wird jedoch die Meldung zurückgegeben, dass der Benutzer derzeit angemeldet ist. Ich dachte, ok, beenden Sie den Vorgang. Also habe ich versucht:
pkill -u test
und sperrte auch das Konto mit:
passwd -l test
Das wird ihn hoffentlich in Zukunft davon abhalten, sich im System anzumelden.
Der Benutzer ist immer noch angemeldet. Wie kann ich diesen Benutzer abmelden, damit ich ihn vom System löschen kann?
Antworten:
Grep zuerst den gesamten Prozess des 'Test'-Benutzers und töte -9 alle PIDs, dann lösche den Benutzer.
quelle
stoppt nicht alle möglichen
ssh
Anmeldemöglichkeiten . Wenn sie sich beispielsweise mit öffentlichen Schlüsseln anmelden, können sie sich trotzdem anmelden, da sie kein Kennwort benötigen.Um die Benutzeranmeldung erneut zu stoppen, bearbeiten Sie die
/etc/passwd
Datei und entfernen Sie den Benutzer oder ändern Sie die 7. Spalte in/sbin/nologin
.Lauf:
um zu sehen, welchen Prozess der Benutzer noch verwendet, und alle zu töten. Möglicherweise müssen Sie Folgendes verwenden:
um den Prozess zum Stoppen zu zwingen.
quelle
/etc/passwd
direkt zu berühren ,sudo /usr/bin/chsh -s /sbin/nologin baduser
funktioniert auch (chsh
: Shell wechseln).passwd -l <user>
Deaktiviert das Konto nicht. Wie bereits erwähnt, kann sich der Benutzer möglicherweise weiterhin mit einem anderen Authentifizierungstoken wie dem SSH-Schlüssel anmelden. Um dieses Konto zu deaktivieren, sollten Sieusermod --expiredate 1
das Verfallsdatum des Kontos auf 1970 setzen. Jetzt sollten Sie alle Prozesse beenden, die der Benutzer gestartet hat. Laufen:$pgrep -u Foo
druckt alle Prozesse, die der Benutzer Foo gestartet hat. Laufen:$kill -9 <pid>
sendet einSIGKILL
Signal, das diesen Prozess beendet. Jetzt ausführen:$pgrep -u Foo | xargs kill -9
Dadurch werden alle Prozess-IDs des Benutzers Foo abgerufen und alle beendet.
ODER:
$kill -9 -u Foo
quelle
Haben Sie versucht, alle Prozesse des Benutzers mit dem SIGKILL zu beenden?
quelle
Ein Fehler wird angezeigt, der den Benutzer jedoch dauerhaft löscht. Sie können es einchecken
/etc/passwd
.quelle