Re: Link fuer alle User auf Desktop KDE erzeugen, SL 9.3, KDE 3.4.0
David Haller <david@dhaller.de> schrieb am 12.02.06 20:47:08:
Hallo,
Am Sun, 12 Feb 2006, Bernd Kloss schrieb:
Christian Boltz <suse@cboltz.de> schrieb am 12.02.06 19:13:06: [..]
Anschließend kopierst Du ~/Desktop/dein-script.desktop nach /etc/skel/Desktop. Falls das Icon auch für vorhandene User verfügbar sein soll, musst Du es auch in alle ~/Desktop/-Verzeichnisse kopieren.
Das Script selbst muss (und sollte) nicht in den Homeverzeichnissen liegen. [..] Das genau ist mein Problem: Das sind ca. 1000 User. Wie bekomme ich diesen Link in alle Desktop-Verzeichisse?
getent passwd | awk -F':' ' BEGIN { T="/etc/skel/Desktop/dein-script.desktop"; } $7 ~ /sh/ && $6 ~ /\/home\/.+/{ d=$6"/Desktop"; printf "test -d \"%s\" || mkdir -p \"%s\" && \ install -m 600 -o %i -g %i \"%s\" \"%s/\"\n", d, d, $3, $4, T, d; }'
Wenn dir die Ausgabe gefaellt kannst du die direkt in die sh pipen:
... }' | sh
Noch Fragen?
1000! Ausrufezeichen, nicht Fakultät, noch nicht! Ich muss das erst mal in Ruhe verdauen. Heißt das "pipen in die sh", dass es dann erst wirklich als Befehl ausgeführt wird und davor ist es noch gefahrlose Spielerei? Danke und Gruß Bernd ______________________________________________________________ Verschicken Sie romantische, coole und witzige Bilder per SMS! Jetzt bei WEB.DE FreeMail: http://f.web.de/?mc=021193
Hallo, Am Sun, 12 Feb 2006, Bernd Kloss schrieb:
David Haller <david@dhaller.de> schrieb am 12.02.06 20:47:08:
Am Sun, 12 Feb 2006, Bernd Kloss schrieb:
Christian Boltz <suse@cboltz.de> schrieb am 12.02.06 19:13:06: [..]
Anschließend kopierst Du ~/Desktop/dein-script.desktop nach /etc/skel/Desktop. Falls das Icon auch für vorhandene User verfügbar sein soll, musst Du es auch in alle ~/Desktop/-Verzeichnisse kopieren.
Das Script selbst muss (und sollte) nicht in den Homeverzeichnissen liegen. [..] Das genau ist mein Problem: Das sind ca. 1000 User. Wie bekomme ich diesen Link in alle Desktop-Verzeichisse?
getent passwd | awk -F':' ' BEGIN { T="/etc/skel/Desktop/dein-script.desktop"; } $7 ~ /sh/ && $6 ~ /\/home\/.+/{ d=$6"/Desktop"; printf "test -d \"%s\" || mkdir -p \"%s\" && \ install -m 600 -o %i -g %i \"%s\" \"%s/\"\n", d, d, $3, $4, T, d; }'
Wenn dir die Ausgabe gefaellt kannst du die direkt in die sh pipen:
... }' | sh
Noch Fragen?
1000! Ausrufezeichen, nicht Fakultät, noch nicht! Ich muss das erst mal in Ruhe verdauen.
*hurhur*
Heißt das "pipen in die sh", dass es dann erst wirklich als Befehl ausgeführt wird und davor ist es noch gefahrlose Spielerei?
Genau. Das obige generiert ein shell-script. Wenn's dir gefaellt kannst du's direkt an die shell verfuettern; ansonsten in ne Datei umleiten "... }' > mach_desktop_links.sh" oder so und das generierte script dann ausfuehren oder z.B. in ein "... }' | less" pipen zum nur mal eben angucken... Lese und verstehe das generierte shellscript. Lese und verstehe wie ich das script generiere... Und wenn du zu letzterem Fragen hast, nur zu. awk lernt man nicht von jetzt auf gleich. -dnh -- Genau das ist das Problem. Ein PeeCee ist eben _kein_ Wunderding, sondern eine Maschine die _genau_ das macht was man ihr sagt, und das ist allzuoft einfach Mist, worauf sich die Maschine "verweigert" und abschmiert... *g* -- ich in SuSE-Talk [gef. v. "dere de herbert"]
Am Montag, 13. Februar 2006 00:21 schrieb David Haller:
Hallo,
Am Sun, 12 Feb 2006, Bernd Kloss schrieb:
David Haller <david@dhaller.de> schrieb am 12.02.06 20:47:08:
Am Sun, 12 Feb 2006, Bernd Kloss schrieb:
Christian Boltz <suse@cboltz.de> schrieb am 12.02.06 19:13:06:
[..]
Anschließend kopierst Du ~/Desktop/dein-script.desktop nach /etc/skel/Desktop. Falls das Icon auch für vorhandene User verfügbar sein soll, musst Du es auch in alle ~/Desktop/-Verzeichnisse kopieren.
Das Script selbst muss (und sollte) nicht in den Homeverzeichnissen liegen.
[..]
Das genau ist mein Problem: Das sind ca. 1000 User. Wie bekomme ich diesen Link in alle Desktop-Verzeichisse?
getent passwd | awk -F':' ' BEGIN { T="/etc/skel/Desktop/dein-script.desktop"; } $7 ~ /sh/ && $6 ~ /\/home\/.+/{ d=$6"/Desktop"; printf "test -d \"%s\" || mkdir -p \"%s\" && \ install -m 600 -o %i -g %i \"%s\" \"%s/\"\n", d, d, $3, $4, T, d; }'
Wenn dir die Ausgabe gefaellt kannst du die direkt in die sh pipen:
... }' | sh
Noch Fragen?
1000! Ausrufezeichen, nicht Fakultät, noch nicht! Ich muss das erst mal in Ruhe verdauen.
*hurhur*
Heißt das "pipen in die sh", dass es dann erst wirklich als Befehl ausgeführt wird und davor ist es noch gefahrlose Spielerei?
Genau.
Das obige generiert ein shell-script. Wenn's dir gefaellt kannst du's direkt an die shell verfuettern; ansonsten in ne Datei umleiten "... }' > mach_desktop_links.sh" oder so und das generierte script dann ausfuehren oder z.B. in ein "... }' | less" pipen zum nur mal eben angucken...
Lese und verstehe das generierte shellscript. Lese und verstehe wie ich das script generiere... Und wenn du zu letzterem Fragen hast, nur zu. awk lernt man nicht von jetzt auf gleich.
wäre das hier nicht einfacher? for i in /home/* do [ -d $i ] && [ -d $i/Desktop ] && cp $script $i/Desktop done Mfg, Thomas
Hallo, Am Mon, 13 Feb 2006, Thomas Gräber schrieb:
Am Montag, 13. Februar 2006 00:21 schrieb David Haller:
Am Sun, 12 Feb 2006, Bernd Kloss schrieb:
David Haller <david@dhaller.de> schrieb am 12.02.06 20:47:08: [..]
getent passwd | awk -F':' ' BEGIN { T="/etc/skel/Desktop/dein-script.desktop"; } $7 ~ /sh/ && $6 ~ /\/home\/.+/{ d=$6"/Desktop"; printf "test -d \"%s\" || mkdir -p \"%s\" && \ install -m 600 -o %i -g %i \"%s\" \"%s/\"\n", d, d, $3, $4, T, d; }' [..] wäre das hier nicht einfacher?
Jein.
for i in /home/* do [ -d $i ] && [ -d $i/Desktop ] && cp $script $i/Desktop done
1. Du quotest die Variablen nicht. 2. es werden nur aktive und existente Accounts verwendet, egal was sonst noch in /home/ rumfaehrt. -dnh -- Er war ein Mann wie ein Baum, sie nannten ihn Bonsai.
Am Montag, 13. Februar 2006 21:26 schrieb David Haller:
Hallo,
Am Mon, 13 Feb 2006, Thomas Gräber schrieb:
Am Montag, 13. Februar 2006 00:21 schrieb David Haller:
Am Sun, 12 Feb 2006, Bernd Kloss schrieb:
David Haller <david@dhaller.de> schrieb am 12.02.06 20:47:08:
[..]
getent passwd | awk -F':' ' BEGIN { T="/etc/skel/Desktop/dein-script.desktop"; } $7 ~ /sh/ && $6 ~ /\/home\/.+/{ d=$6"/Desktop"; printf "test -d \"%s\" || mkdir -p \"%s\" && \ install -m 600 -o %i -g %i \"%s\" \"%s/\"\n", d, d, $3, $4, T, d; }'
[..]
wäre das hier nicht einfacher?
Jein.
for i in /home/* do [ -d $i ] && [ -d $i/Desktop ] && cp $script $i/Desktop done
1. Du quotest die Variablen nicht. 2. es werden nur aktive und existente Accounts verwendet, egal was sonst noch in /home/ rumfaehrt.
Ok, dann evtl. so: for i in `cat /etc/passwd` do OLDIFS=$IFS;IFS=:;echo '$i' | awk '{printf($5 "\n");}' IFS=$OLDIFS done | grep '/home' >>temp.txt for i in `cat temp.txt` do [ -d '$i/Desktop' ] && cp $script '$i/Desktop' done rm temp.txt ist bestimmt auch verbesserungsfähig, aber ich denke, es sollte seinen Zweck erfüllen, sofern die Verzeichnisse der aktiven User auch unter /home liegen. Mfg, Thomas
Hallo, Am Tue, 14 Feb 2006, Thomas Gräber schrieb: >Am Montag, 13. Februar 2006 21:26 schrieb David Haller: [..] >> >> >David Haller <david@dhaller.de> schrieb am 12.02.06 20:47:08: >> >> >> getent passwd | awk -F':' ' >> >> >> BEGIN { T="/etc/skel/Desktop/dein-script.desktop"; } >> >> >> $7 ~ /sh/ && $6 ~ /\/home\/.+/{ >> >> >> d=$6"/Desktop"; >> >> >> printf "test -d \"%s\" || mkdir -p \"%s\" && \ >> >> >> install -m 600 -o %i -g %i \"%s\" \"%s/\"\n", >> >> >> d, d, $3, $4, T, d; >> >> >> }' [..] >> 1. Du quotest die Variablen nicht. >> 2. es werden nur aktive und existente Accounts verwendet, egal was >> sonst noch in /home/ rumfaehrt. > >Ok, dann evtl. so: > >for i in `cat /etc/passwd` >do > OLDIFS=$IFS;IFS=:;echo '$i' | awk '{printf($5 "\n");}' > IFS=$OLDIFS >done | grep '/home' >>temp.txt >for i in `cat temp.txt` Useless use of cat und du schreibst cut -d':' -f6 /etc/passwd | grep '/home/' | while read i bzw. eleganter: awk -F':' '/\/home\//{print $6;}' /etc/passwd | while read i sehr umstaendlich. >do > [ -d '$i/Desktop' ] && cp $script '$i/Desktop' >done >rm temp.txt Und wie passt du die Rechte an? Und wo filterst du die User aus, die zwar ein /home/ aber keine shell haben? >ist bestimmt auch verbesserungsfähig, aber ich denke, es sollte seinen Zweck >erfüllen, sofern die Verzeichnisse der aktiven User auch unter /home liegen. Siehe oben. -dnh -- > Quatsch. Ich will ein Internet ohne Werbemüll. Und ohne AOL. AOL! -- R. Schwentker und M. Karcher
participants (3)
-
Bernd Kloss
-
David Haller
-
Thomas Gräber