Hallo Gemeinde, kennt jemand von Euch ne gute Seite wo man Infos zum erlernen von Progammierung in Bash lernen kann bzw. nachlesen ? -- Best regards, Marko mailto:suse-mailing@gpi-world.de
From: "Marko Hoffmann"
kennt jemand von Euch ne gute Seite wo man Infos zum erlernen von Progammierung in Bash lernen kann bzw. nachlesen ?
<zeitmachine> Aus Linux-Computing 7/2001: ----- Aktuelles Thema: Bash besser beherrschen Allen Desktops und Window-Managern zum Trotz lassen sich viele Probleme am schnellsten mit der Shell lösen. Die Dokumentation der Standard-Shell unter Linux - der bash (Bourne Again Shell) - ist zwar umfangreich (man bash), aber alles andere als leicht verständlich. Eine Vielzahl von Ressourcen im Web hilft auf die Sprünge. Maintainer des Bash-Projektes ist Chat Ramey, der unter http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html auf die jeweils aktuelle Version und die zugehörige Dokumentation linkt. Außerdem findet sich hier die Bash-FAQ, die man bei Fragen als erstes ansteuern sollte. +++ Wie für jede GNU-Software gibt es auch für die Bash eine Homepage auf dem Server des GNU-Projekts. Unter www.gnu.org/software/bash/bash.html lagert auch die Bash-Doku unter anderem im HTML-, DVI- oder Postscript-Format. +++ Grundlagen zur Bedienung liefert die deutschsprachige Linuxfibel. Das Onlinebuch unter www.linuxfibel.de/kapitel2.htm biete ein eigenes Kapitel zur Bash, im noch nicht gänzlich fertiggestellten Kapitel 6 findet sich weiteres Material zur Script-Programmierung und den Shells csh/tcsh und ksh. +++ IBMs Developerworks enthält neben vielen anderen auch Artikel über die Bash. Unter www.ibm.com/developerworks/linux/library/bash.html bietet Bash by example eine sehr ausführliche Starthilfe, die auch für komplexeren Themen nicht zurückschreckt (Teile zwei und drei unter .../bash2.html und .../bash3.html). +++ Wie fast immer bei der Suche nach Dokumentationen ist auch in Bash-Belangen das Linux Documentation Project (LDP) erste Anlaufstelle. Unter www.linuxdoc.org/HOWTO/Bash-Prog-Intro-HOWTO.html findet sich ein Introduction-Howto zu Bash-Scripten: kleinen Programmen mit der Macht der Shell. +++ In die gleiche Kerbe schlägt das Linux Shell Scripting Tutorial unter www.freeos.com/guides/lsst. Autor Vivek Gite mag sich zwar als Englisch-Lehrer nicht eignen, Bash-Einsteiger sind aber bei ihm an der richtigen Stelle. +++ Eine Einführung in Bedienung und Programmierung der Bash enthält das umfangreiche Online-Buch Linux-Einführung von Thomas Ermer. Unter http://sibelius.artis.uni-oldenburg.de/Books/Linux-Einfuehrung/node4 9.html finden sich mundgerecht aufgeteilte kleine Wissenshäppchen, die man auch in kleinen Pausen Stück für Stück durcharbeiten kann. +++ Unix-Guru Kristian Koehntopp kümmert sich in seinem Artikel über UNIX Shellprogrammierung recht wenig um die pädagogischen Bedürfnisse von Einsteigern. Wer aber schon über das kleine 1 x 1 der Bash-Programmierung hinaus ist, findet unter www.koehntopp.de/kris/artikel/unix/shellprogrammierung jede Menge Hintergrundwissen. +++ Das LDP versteht sich nicht nur als Anlaufstelle für Einsteiger, sondern bietet auch Material für Profis. Unter www.linuxdoc.org/HOWTO/Adv-Bash-Scr-HOWTO/index.html findet sich das Advanced Bash-Scripting HOWTO, Es beginnt zwar auch bei Null, schwingt sich aber schnell in artistische Höhen. Wertvoll: ein "Mini-Primer" zu den Stream-Editoren sed und awk. +++ Bastelt man an seinem eigenen Rechner Shell-Scripte, besteht schnell der Reiz, ihnen per SUID root-Rechte zu geben - einfach weil es so schön bequem ist. Über die möglichen Gefahren klärt das Sys Admin Magazine unter www.samag.com/current/0106a/0106a.htm auf und erläutert, wie man's richtig macht. +++ Fühlt man sich erst einmal in der Bash wie zu Hause, verguckt man sich schnell in externe Utilities wie awk. Der Stream-Editor hat fast den Leistungsumfang einer eigenen Scriptsprache; um so hilfreicher sind daher Schritt-für-Schritt-Einführungen wie Awk by expample unter www.ibm.com/developerworks/linux/library/l-awk1.html (Teile zwei und drei unter .../awk2.html und .../awk3.html). +++ Developerworks bietet noch einen kleineren, aber ebenso wichtigen Artikel zum Feintuning des Bash-Prompts. Unter www.ibm.com/developerworks/linux/library/l-tip-prompt lagern Tips, wie man etwa die Titelzeile eines Xterms zur Anzeige von Informationen einsetzt oder bestimmte Details farbig darstellt. Dem gleichen Thema widmet sich das Bash Prompt HOWTO unter www.linuxdoc.org/HOWTO/Bash-Prompt-HOWTO.html - trockener, aber dafür umso ausführlicher. </zeitmaschine> Gruß, Alfred
On Die, Mai 15, 2001 at 04:59:12 +0200, Alfred Poschmann wrote: [...]
Bastelt man an seinem eigenen Rechner Shell-Scripte, besteht schnell der Reiz, ihnen per SUID root-Rechte zu geben - einfach weil es so schön bequem ist. Über die möglichen Gefahren klärt das Sys Admin Magazine unter www.samag.com/current/0106a/0106a.htm auf und erläutert, wie man's richtig macht. [...]
DAS hat da drin gestanden? *kicher, lach, vom Stuhl fall* So ein Unsinn! Shell-Scripts kann man zwar per chmod das setuid-Bit verpassen, damit hat man aber mitnichten root-Rechte. Das klappt bei Scripts nicht. Probiers aus: Als root: echo "cat /var/log/messages" >/tmp/a chmod 04755 /tmp/a Als Benutzer: /tmp/a SCNR Jan
On Die, 15 Mai 2001, Jan Trippler wrote:
On Die, Mai 15, 2001 at 04:59:12 +0200, Alfred Poschmann wrote: [...]
Bastelt man an seinem eigenen Rechner Shell-Scripte, besteht schnell der Reiz, ihnen per SUID root-Rechte zu geben - einfach weil es so schön bequem ist. Über die möglichen Gefahren klärt das Sys Admin Magazine unter www.samag.com/current/0106a/0106a.htm auf und erläutert, wie man's richtig macht. [...]
DAS hat da drin gestanden? *kicher, lach, vom Stuhl fall*
Das HAT nicht, das WIRD da drinstehen (Ausgabe 7/_2001_... Es ist grad erst die 6/2001 draussen... Naja, Alfred kann das ja noch korrigieren (lassen). *rotfl* -dnh -- [..] alas, reminded me of the old definition of mixed emotions: "Watching your mother-in-law drive off a cliff in your new truck." -- Kevin Martin in the SDM
From: "David Haller"
DAS hat da drin gestanden? *kicher, lach, vom Stuhl fall*
Das HAT nicht, das WIRD da drinstehen (Ausgabe 7/_2001_... Es ist grad erst die 6/2001 draussen... Naja, Alfred kann das ja noch korrigieren (lassen).
*rotfl*
Das wird er wohl tun :) Lacht nur, aber ich verwette sonst was, dass es *IXe gibt, unter denen es geht - irgendwann Ende der 80iger habe ich ich meinem jugendlichen Wahn nämlich (ebenso erfolglos wie dilettantisch - keine Ahnung halt) versucht, wegen eines lückenbehafteten Suid-root-Scriptes mir einen root-account zu basteln. Ich meine, dass es ein SystemV R3 oder R4 war - aber Jan Trippler, der es wohl auch mal in den Fingern hatte, hat in einer PM widersprochen. Anyway, unter Linux und wohl den meisten aktuellen *IXen geht es nicht - also lacht ruhig, ist verdient :) Ich hoffe trotzdem, dass die Links dem Vater des Threads helfen. Wer immer das auch war. Grüße, Alfred
On Mit, 16 Mai 2001, Alfred Poschmann wrote:
From: "David Haller"
[..] DAS hat da drin gestanden? *kicher, lach, vom Stuhl fall*
Das HAT nicht, das WIRD da drinstehen (Ausgabe 7/_2001_... Es ist grad erst die 6/2001 draussen... Naja, Alfred kann das ja noch korrigieren (lassen).
*rotfl*
Das wird er wohl tun :)
Was bekommt man denn bei euch so fuer's Korrekturlesen? *SCNR*
Ich hoffe trotzdem, dass die Links dem Vater des Threads helfen.
Sicherlich! Mir faellt da grad noch das Bash-Kapitel bei selflinux.de ein... -dnh, *immernochgruebelndwoaussermanbasherseinebescheidenenkenntnisseherhat* -- 5: Breitbandkommunikation Porno MPEGs mit Ton (Kristian Köhntopp)
Am Die, 15 Mai 2001 schrieb Jan Trippler:
On Die, Mai 15, 2001 at 04:59:12 +0200, Alfred Poschmann wrote: [...]
Bastelt man an seinem eigenen Rechner Shell-Scripte, besteht schnell der Reiz, ihnen per SUID root-Rechte zu geben - einfach weil es so schön bequem ist. Über die möglichen Gefahren klärt das Sys Admin Magazine unter www.samag.com/current/0106a/0106a.htm auf und erläutert, wie man's richtig macht. [...]
DAS hat da drin gestanden? *kicher, lach, vom Stuhl fall* So ein Unsinn! Shell-Scripts kann man zwar per chmod das setuid-Bit verpassen, damit hat man aber mitnichten root-Rechte. Das klappt bei Scripts nicht.
Probiers aus: Als root: echo "cat /var/log/messages" >/tmp/a chmod 04755 /tmp/a
Als Benutzer: /tmp/a
ACK es klappt übrigens auch nicht, ein c-Programm setuid zu starten und in diesem mittels system() oder so ein script setuid zu starten, das setuid des c-Proggys wird nicht "vererbt". Begründung: Ich denke, bei einem script sieht man einfach zu gut, was es tut, um die setuid-Eigenschaft durch geschickte Manipulation ausnutzen zu können. AFAIK brauchen scripte immer r-x-Recht um ausgeführt zu werden (und es gibt kein setuid für das lesen, sondern nur fürs Ausführen), Proggys dagegen nur --x. -- may the tux be with You! Joerg Thuemmler sysadmin@vordruckleitverlag.de Vordruck Leitverlag GmbH Berlin, ZNL Freiberg Halsbruecker Str. 31b, 09599 Freiberg, Germany Tel. +49 (0)3731/303121
Hallo,
Begründung: Ich denke, bei einem script sieht man einfach zu gut, was es tut, um die setuid-Eigenschaft durch geschickte Manipulation ausnutzen zu können. AFAIK brauchen scripte immer r-x-Recht um ausgeführt zu werden (und es gibt kein setuid für das lesen, sondern nur fürs Ausführen), Proggys dagegen nur --x.
Hmmm ... das müsste man erst einmal ausprobieren ... ich muss das Programm doch lesen können, oder nicht? Aber egal ... Was ich eigentlich sagen will: Das Script selbst wird ja streng genommen auch nicht gestartet. Sondern die Shell startet ein anderes Programm und übergibt diesem das Script. Dieses ist default-Mässig /bin/sh - es sei denn, in der ersten Zeile steht ein #!/path/to/programm. Wenn ich jetzt die Interna von Linux im Kopf hätte, wie das Starten eines Prozesses genau vonstatten geht ... dann könnte man auch das Verhalten oben - falls es denn so ist - erklären ... beim einen startet man ja z.B. Perl und muss dann das script lesen ... beim anderen reicht es evtl. zu sagen: Kernel - ich will das Programm starten. Mit besten Grüßen, Konrad Neitzel -- Konrad Neitzel Frankfurt / Main
On Mit, Mai 16, 2001 at 08:39:47 +0200, Joerg Thuemmler wrote: [Scripts mit suid]
es klappt übrigens auch nicht, ein c-Programm setuid zu starten und in diesem mittels system() oder so ein script setuid zu starten, das setuid des c-Proggys wird nicht "vererbt". Begründung: Ich denke, bei einem script sieht man einfach zu gut, was es tut, um die setuid-Eigenschaft durch geschickte Manipulation ausnutzen zu können. AFAIK brauchen scripte immer r-x-Recht um ausgeführt zu werden (und es gibt kein setuid für das lesen, sondern nur fürs Ausführen), Proggys dagegen nur --x.
Das stimmt so nicht. Das geht (sonst dürfte sudo ja auch nicht funktionieren), man muss im C-Programm lediglich die effektive User-ID umsetzen (man setuid). Um das erfolgreich machen zu können, braucht man das setuid-Bit. Was Scripts angeht: Konrad hatte das schon richtig beschrieben: Das Script wird nur gelesen und interpretiert, wesentlich sind also nicht die Rechte des Scripts sondern die des Interpreters. Der Interpreter muss das Script nur lesen können (deshalb das r), x ist gar nicht notwendig (wenn das Script direkt an den Interpreter übergeben wird: sh script). Jan
participants (6)
-
Alfred Poschmann
-
David Haller
-
Jan.Trippler@t-online.de
-
Joerg Thuemmler
-
Konrad Neitzel
-
Marko Hoffmann