"Reset" eines Benutzers

Domme.

Domme.

Mitglied
Hallo,
ich habe die Aufgabe bekommen auf ca 30 Macbooks die Benutzerdaten von jedem Benutzer zurückzusetzen (Ohne den Benutzer zu löschen). Ich wollte das mithilfe eines shellscripts realisieren, was sich in den Startobjekten des Benutzers befindet.
Ich bin soweit, dass alle Daten außer (hier liegt das Problem) die Dateien, die ein Leerzeichen enthalten gelöscht werden.

Hier ist der Code:

Code:
todel=$(ls $HOME)

for i in $todel
do
    del=$(ls $HOME/$i)

    if [ "$i" != "Library" ]
    then
        if [ $i != "Desktop" ] && [ $i != "Documents" ] && [ $i != "Downloads"] && [ $i != "Movies" ] && [ $i != "Music" ] && [ $i != "Pictures"] && [ $i != "Public" ] && [ $i != "Sites" ] && [ $i != "." ] && [ $i != ".." ]
            then
            rm -r $HOME/$i
        else
           if test "$del" != ""
               then
               rm -r $HOME/$i/*
           fi
        fi
     fi
    del=""
done


Vielleicht hat auch jemand eine andere Idee.

Mfg Domme
 
Daß dann auch die vom Nutzer erstellten Dokumente&Co weg sind?
 
Es sollen ja alle vom Benutzer erstellten Daten gelöscht werden. Es sollen aber alle Verzeichnisse erhalten bleiben die von den "Werkseinstellungen" aus schon da sind. Also "Documents", "Pictures" und co. Außerdem soll der Inhalt aus "Library" nicht gelöscht werden, was jedoch oben im Code schon drin ist.
 
Hi,

also ich bin ziemlich unwissend was shell scripts angeht aber wäre es nicht möglich ein standard bzw default profile zu erstellen und das als vorlage zu nutzen.

dann sowas wie
Code:
mv $HOME/Library /tmp/$HOME/Library
rm -rf $HOME/*
cp $PATH_TO_DEFAULT $HOME
mv /tmp/$HOME/Library $HOME/Library
soll nur die richtug zeigen die ich meine, ein funktionierendes script is es natürlich nicht.

/edit:
und dann vielleicht noch mit chown und chmod die benutzerrechte anpassen
 
Problem stell ich einfach mal anhand folgendem Beispiel dar:
Code:
karru@debian:~/test$ ls -l
insgesamt 0
-rw-r--r-- 1 karru karru 0 14. Feb 17:50 Datei1
-rw-r--r-- 1 karru karru 0 14. Feb 17:50 Datei 2
karru@debian:~/test$ ls
Datei1  Datei 2
karru@debian:~/test$ for i in $(ls); do echo "$i"; done
Datei1
Datei
2

Bei dieser "Methode" Dateinamen anzugeben ist das Leerzeichen das Trennzeichen.
Abhilfe schafft man sich, indem man nicht for ... ls nimmt.
Eine, wie ich finde, einfache und nette Möglichkeit ist die verwendung von find ... | while read FILE.
Code:
karru@debian:~/test$ find . | while read i; do echo $i; done
.
./foo
./Datei1
./Datei 2
karru@debian:~/test$

PS:
http://forum.ubuntuusers.de/topic/bash-for-mit-ls-und-leerueichen-in-dateinamen/
Die letzten drei Posts zum Thema $IFS.
 
Zuletzt bearbeitet:
Wenn man "$(ls)" schreibt (also mit doppelten Anfuehrungszeichen), ist das Problem auch mit 'ls' geloest, zumindest bei meinem kleinen Test.
Code:
#> for i in "$(ls)"; do echo "$i"; done
Wobei das Linux ist. Vielleicht reagiert das Dateisystem von Mac OSX da ja auch wieder anders.
 

Ähnliche Themen

MacBook Pro hat Benutzer-Konten vergessen

Falsche Rechte gesetzt beim Anlegen von Ordnern via Samba-Client

Prozess aus eigenem Init script wird gekillt

Löschroutine mit Überprüfung

tilp lässt sich nicht installieren

Zurück
Oben