Moin,
wenn der Eintrag nicht mehr existiert, dann hast Du (abh. von Eurer Konfiguration) ein kleines bis großes Problem: Wo war das HOME-Verzeichnis des Users? Habt Ihr feste Pfade (z. B. /home/User), dann geht es noch:
Code:
getent passwd $USER
test $? -eq 2 && rm -rf /home/$USER
Wenn die HOME-Verzeichnisse variable Pfade haben, dann musst Du Dir wohl so helfen, dass Du z. B. eine allgemein vorhandene Datei suchst, die jeder User im HOME hat (z. B. .profile) - Du hast dann nämlich das Problem, dass Du auch seine User-ID nicht mehr kennst (sonst könntest Du mit find -user $USER_ID ... danach suchen):
Code:
getent passwd $USER
if test $? -eq 2; then
find / -type f -name .profile -print | while read f; do
test `basename \`dirname $f\`` = $USER && rm -rf `dirname $f`
done
fi
Damit suchst Du alle .profile-Dateien und guckst nach, ob der Verzeichnisname gleich dem Usernamen ist.
Einfacher ist die 2. Variante ("DEL=..." im gecos-Feld):
Code:
gecos_home="`getent passwd $USER | cut -f5,6 -d:`"
test "`echo $gecos_home | cut -f1 -d=`" = "DEL" && rm -rf `echo "$gecos_home" | cut -f2 -d:`
Wenn Du nicht weisst, welche User überhaupt gelöscht wurden, dann wird es noch lustiger. Dann musst Du z. B. alle .profiles suchen, die keinem User mehr zugeordnet sind:
Code:
find / -name .profile -type f -nouser -print | while read f; do...
Auch hier hilft es natürlich, wenn die HOME-Verzeichnisse unter bekannten Pfaden zu erreichen sind. In der 2. Variante geht es dann einfach über alle User:
Code:
getent passwd | cut -f5,6 -d: | while read gecos_home; do ...
Vorsicht: Alle Beispiele ungetestet! ICH will nämlich keine User bei mir löschen.
Noch ein Rat zur Vorsicht: Es gibt meist Verzeichnisse, in denen User Dateien ablegen und die nicht ihre HOME-Verzeichnisse sind. Wenn der User gelöscht ist (und nicht mehr per getent passwd zu finden ist), dann steckt da ein gewisses Risiko drin: Wenn ein böswilliger User (oder Trottel, der mal eben sein HOME irgendwo in zentrale Verzeichnisse gesichert hat) darin eine .profile anlegt, dann suche bei Variante 1 am besten schnell ein Backup raus ;-)
HTH
Jan
Lesezeichen