So implementieren Sie ein flüchtiges "Benutzerprofil"

1501
eleven81

Ich möchte eine Linux-Maschine so einrichten, dass beim Abmelden eines bestimmten Benutzers ( Student) das Verzeichnis / home gelöscht und zurückgesetzt wird.

Grundsätzlich möchte ich diese Aktionen ausführen, wenn sich der Benutzer abmeldet:

userdel student rm -r /home/student useradd -m student echo student | passwd --stdin student 

Gibt es einen einfacheren Weg, als den Benutzer zu löschen und neu zu erstellen?

Hinweis: Ziel ist es, den Inhalt des Home-Verzeichnisses des Benutzers zu löschen und das Home-Verzeichnis des Benutzers aus / etc / skel erneut aufzufüllen. Ich schätze, ich versuche nur, Dateieigentümerprobleme zu umgehen, die beim Kopieren von / etc / skel über / home / student entstehen.

Edit: Was ich tun müssen, ist imitieren die Art und Weise, dass useradd -mKopien der Stoff, aus /etc/skelzu /home/studentund ändert die Eigentümer, Gruppe und Berechtigungen. Wie kann ich was tun, useradd -mohne den Benutzer löschen und erneut erstellen zu müssen?

3
Post gesperrt. Machen Sie keine Änderungen von Moderatoren für Beiträge rückgängig. BinaryMisfit vor 14 Jahren 0

4 Antworten auf die Frage

5
itsadok

Vielleicht fehlt mir etwas, aber warum sollten Sie den Benutzer überhaupt löschen und neu erstellen, wenn Sie nur das Home-Verzeichnis bereinigen möchten?

Kannst du nicht einfach eine

rsync -a --delete /etc/skel/ /home/student/ 

jedes Mal, wenn sich ein Benutzer abmeldet?

Vielleicht töten Sie auch alle Benutzerprozesse, wenn noch welche vorhanden sind, aber das ist es.

UPDATE: Um den Besitzer der Dateien zu ändern, sollten Sie ihn einfach ausführen

chown -R student:student /home/student/* 

nach dem rsync.

Ich bezweifle, dass die Berechtigungen geändert werden müssen, aber wenn dies der Fall ist, müssen Sie dies dateiweise tun

chmod +x /home/student/bin/* 
Dies behält den Besitzer, die Gruppe und die Berechtigungen bei, die in allen Dateien in / etc / skel vorhanden sind. Dies führt zu Problemen, da root die meisten dieser Dateien besitzt. Wenn sich der Benutzer anmeldet, besitzt er und seine Prozesse die Dateien nicht. Beim Ausführen von useradd -m werden der Eigentümer, die Gruppe und die Berechtigungen nach Bedarf festgelegt, damit die Anmeldung tatsächlich funktioniert. eleven81 vor 14 Jahren 0
Siehe mein Update. Ist es das was du wolltest? itsadok vor 14 Jahren 0
Ich werde dieses Update heute noch ausprobieren müssen. Es sieht sehr vielversprechend aus! eleven81 vor 14 Jahren 0
itsadok: Ich habe es mit der rsync-Zeile und der chown -R-Zeile (minus dem letzten Schrägstrich und Sternchen) so gemacht, wie ich es wollte. Ich musste keine der Berechtigungen ändern. Vielen Dank! eleven81 vor 14 Jahren 0
itsadok: Es scheint, dass die rsync-Zeile die versteckten Verzeichnisse (die mit einem. beginnen) nicht von / etc / skel in / home / student kopiert. Irgendwelche Ideen? eleven81 vor 14 Jahren 0
Funktioniert bei mir. Sie sollten dafür wahrscheinlich eine andere SU-Frage stellen, da muss etwas falsch sein (Leseberechtigungen, vielleicht?) itsadok vor 14 Jahren 0
0
Kevin M

Mit "bash" getaggt, also gehe ich davon aus, dass Sie anstelle einer GUI ein Befehlszeilen-Login suchen

student@pc:~$ cat .bash_logout  if [ "$SHLVL" = 1 ]; then [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q fi cd ~ rm -r ~/* ~/.[a-zA-Z1-9]* cp -r /etc/skel/* /etc/skel/.[a-zA-Z1-9]* . 

Die ersten drei Zeilen der oben genannten sind Standard (zumindest auf meinem Ubuntu-Computer) und der Rest wurde nicht getestet. Diese Route hat den Vorteil, dass sie nicht ausschließlich als root ausgeführt werden muss.

Außer dass es auch "gdm" getaggt ist. Dennis Williamson vor 14 Jahren 0
0
ayrnieu

Vorbereitung:

sudo mkdir /home/clean-homes/ sudo tar zcvf /home/clean-homes/$user.tar.gz ~user 

Ich benutze kein GDM und vergesse daher das Format, das /usr/share/xsessions/*.desktopes verwendet, aber es ist unkompliziert. Haben Sie ein Skript wie

#! /bin/sh cd mkdir .old mv * .* .old rm -rf .old & tar zxpPf /home/clean-homes/$USER.tar.gz exec gnome-session # or whatever 

Dadurch muss der neue Benutzer die alten Dateien löschen und den Inhalt des Home-Verzeichnisses beim Anmelden neu erstellen. Dies ist keine Lösung, wenn Sie die alten Dateien werden möchten gesichert von den neuen Benutzer: in diesem Fall sollten Sie mehrere Benutzer erstellen [? Warum nicht Sie], oder Menschen beraten Ihre ‚clean-Logout‘ Skript auszuführen, oder - wenn Sie nur mit Ihrem /usr/share/xsessions/*.desktops angemeldet sind, schreiben Sie das obige Skript mit absoluten Pfaden und ohne das Hintergrundbild rm.

Verlassen Sie sich nicht darauf, dass Benutzer beim Abmelden ihre eigenen Verzeichnisse leeren. Siehe: Strg + Alt + Rücktaste pkill gnomesowie die Leistung eines physisch zugänglichen Computers.

0
simplr

Ubuntu 8.10 und höher ist standardmäßig mit der Option "Gastsitzung" ausgestattet. Dadurch wird auf ein Gastkonto mit allen üblichen Programmen und Verzeichnissen im unberührten Zustand gewechselt. Alle Änderungen, die der Gast vornimmt, gehen verloren, wenn sich der Gast abmeldet. Sie können jederzeit zur normalen Sitzung wechseln, indem Sie einfach Ihr Passwort eingeben.