Linux: User die älter als X Tage sind löschen?

Xep22

New Member
moin,

habe ein script welches einen Benutzer anlegt damit dieser Daten per FTP hochladen kann. In dem script ist angegeben wie lange der Zugang besteht, doch das technische Umsetzen fehlt mir jetzt noch. Derzeit mache ich es so :

usermod --lock ftpuser69 | at now + 3 hours

doch das Sperrt den benutzer ja nur. Gibt es eine Möglichkeit, dass er richtig raus gelöscht wird aus dem System mit Zeitangabe ?
 

DeaD_EyE

Blog Benutzer
doch das Sperrt den benutzer ja nur. Gibt es eine Möglichkeit, dass er richtig raus gelöscht wird aus dem System mit Zeitangabe ?
Nicht, dass ich wüsste. Kannst ja mal selbst /etc/passwd ausgeben. Dort sind keine Zeitstempel enthalten.
Wenn, dann musst du selbst irgendwo Zeitstempel für den entsprechenden User irgendwo speichern.
Später dann immer alle Zeitstempel abfragen und ggf. löschen.

Ich würde es komplett anders machen. Ich denke mal, dass irgendein Frontend (Webserver) die Aktion auslösen soll.
Den proftpd kann man z.B. an eine MySQL-Datenbank anbinden und virtuelle (nicht Systemuser) erstellen.
Zusätzlich kannst in der Datenstruktur eine Spalte für einen Zeitstempel angeben. Ich vermute mal, dass unbekannte Spalten von
proftpd einfach ignoriert werden. Falls nicht, macht man halt eine zusätzliche Tabelle.

Am Ende ist das ein Query um alle Einträge zu löschen, die älter als X sind.
Den Query lässt man dann z.B. alle 15 Minuten laufen oder jede Stunde.
Je nachdem wie genau man es haben will.

Ein weiterer Vorteil ist, dass es sich bei dem Verfahren nicht um Systemuser handelt. Ansonsten muss man immer drauf achten,
dass der User sich nicht mit SSH verbinden kann (z.B. durch Angabe einer Shell die nicht existiert).
Außerdem ist das doof andauernd systemweit User hinzuzufügen oder zu entfernen.
 
Last edited:
Top