<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>[pimp my shell] &#187; hintergrundwissen</title>
	<atom:link href="http://blog.pimpmyshell.de/category/hintergrundwissen/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.pimpmyshell.de</link>
	<description>leben im text-modus</description>
	<lastBuildDate>Thu, 26 Aug 2010 18:04:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Die &#8220;Fork Bomb&#8221; und die limits.conf</title>
		<link>http://blog.pimpmyshell.de/2007/07/02/die-fork-bomb-und-die-limitsconf/</link>
		<comments>http://blog.pimpmyshell.de/2007/07/02/die-fork-bomb-und-die-limitsconf/#comments</comments>
		<pubDate>Mon, 02 Jul 2007 15:10:17 +0000</pubDate>
		<dc:creator>Jeremy</dc:creator>
				<category><![CDATA[hintergrundwissen]]></category>
<category>"Fork Bomb"</category><category>Debian</category><category>limits.conf</category><category>Shell</category>
		<guid isPermaLink="false">http://blog.pimpmyshell.de/2007/07/02/die-fork-bomb-und-die-limitsconf/</guid>
		<description><![CDATA[Ich wurde heute gebeten, doch mal folgende Zeile in der nächstbesten Shell auszuführen: $ :(){ :&#124;:&#038; };: Ich könnte nun die Zeile unerklärt lassen. Wissend, dass andere Nutzer der Shell diese aus lauter neugierde ausprobieren. Mache ich aber nicht. Punkt. Der Anschauligkeit halber hier das Script erst noch einmal in der Standartnotation: :() { : [...]]]></description>
			<content:encoded><![CDATA[<p>Ich wurde heute gebeten, doch mal folgende Zeile in der nächstbesten Shell auszuführen:</p>
<p><code>$ :(){ :|:&#038; };:</code></p>
<p>Ich könnte nun die Zeile unerklärt lassen. Wissend, dass andere Nutzer der Shell diese aus lauter neugierde ausprobieren. Mache ich aber nicht. Punkt.<span id="more-95"></span></p>
<p>Der Anschauligkeit halber hier das Script erst noch einmal in der Standartnotation:</p>
<p><code>:() {<br />
 : | : &#038;<br />
};<br />
:</code></p>
<p>Dieses kleine Script erzeugt eine Funktion namens &#8220;:&#8221;, welche sich selbst rekursiv aufruft. Zwei mal. Im Hintergrund. Weil sich die Funktion (ewig) immer und immer wieder selbst aufruft, frisst das sehr schnell eine menge Systemressourcen. Deswegen der Name &#8220;Fork Bomb&#8221;.</p>
<p>Wer das immer noch nicht versteht, hier eine noch einfachere Version:</p>
<p><code>forkbomb() {<br />
forkbomb | forkbomb &#038;<br />
};<br />
forkbomb</code></p>
<p>In der Funktion wird eine sogenannte <a href="http://www.selflinux.org/selflinux/html/bash_basic03.html">Pipe</a> erzeugt, welche zwei weitere Instanzen der Funktion (jede wird ein eigener Prozess, nicht nur ein &#8220;Child&#8221;, welches wenn der Urprozess gekillt, ebenfalls beendet wird.) in den Hintergrund <a href="http://de.wikipedia.org/wiki/Fork_(Unix)">forkt</a>. Für jede Instanz der Funktion entstehen Zwei neue. Das Ergebnis ist eine gewaltige Nummer von Prozessen, welche sehr schnell erzeugt werden.</p>
<p>Wie also unschwer zu erkennen ist, sollte das nicht leichtsinnig ausprobiert werden.</p>
<p>Übrigens sind damit, gerade auf Multiusersystemen fürchterliche Horrorszenarien (für den admin, versteht sich) denkbar. Die Zahl der Prozesse, die ein User maximal gleichzeitig aufrufen kann lässt sich unter Debian (und Derivaten wie Ubuntu) in der Datei <code>/etc/security/limits.conf</code> festlegen. Mehr dazu gibt es <a href="http://www.linux-hamburg.de/limits.html">hier</a> und <a href="http://www.selflinux.org/selflinux/html/grundlagen_sicherheit05.html">hier</a>.</p>
<p>(Dieser Beitrag steht unter einer <a href="http://creativecommons.org/licenses/by-nc-sa/3.0/deed.de">Creative-Commons-Lizenz</a> und wurde erstmals am Mittwoch, dem 27. Juni 2007 um 1:44 auf <a href="http://jeremy.lonien.de/?p=440">jeremy.lonien.de</a> veröffentlicht.)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2007/07/02/die-fork-bomb-und-die-limitsconf/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>das Image von Linux</title>
		<link>http://blog.pimpmyshell.de/2007/03/11/das-image-von-linux/</link>
		<comments>http://blog.pimpmyshell.de/2007/03/11/das-image-von-linux/#comments</comments>
		<pubDate>Sun, 11 Mar 2007 00:57:17 +0000</pubDate>
		<dc:creator>hogdarog</dc:creator>
				<category><![CDATA[hintergrundwissen]]></category>
		<category><![CDATA[how-tos]]></category>
		<category><![CDATA[programme]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2007/03/11/das-image-von-linux/</guid>
		<description><![CDATA[Ich habe mir vor Jahren angewöhnt, von jeder Windows-Installation ein Image mittels Norton Ghost bzw. PartitionImage zu ziehen. Das spart so manche Neuinstallation mit der darauffolgenden Konfigurationsorgie&#8230; Als ich zum Linux-Lager schwenkte, wollte ich so etwas natürlich auch für meine Linuxrechner haben, aber bitte mit quelloffener Software&#8230; Es wurde schnell klar, dass dd das Mittel [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mir vor Jahren angewöhnt, von jeder Windows-Installation ein Image mittels Norton Ghost bzw. PartitionImage zu ziehen. Das spart so manche Neuinstallation mit der darauffolgenden Konfigurationsorgie&#8230;<br />
Als ich zum Linux-Lager schwenkte, wollte ich so etwas natürlich auch für meine Linuxrechner haben, aber bitte mit quelloffener Software&#8230;</p>
<p>Es wurde schnell klar, dass <strong>dd</strong> das Mittel der Wahl dafür ist. Und dabei ist es auch noch so einfach zu bedienen:</p>
<blockquote><p><em> dd if=/dev/hda1 of=/mnt/backup/hda1.dd bs=1024K</em></p></blockquote>
<p>schreibt ein Image der ersten Partition der ersten IDE-Platte in ein Image namens <em>/mnt/backup/hda1.dd</em><br />
Die einzelnen Parameter bedeuten dabei:<br />
<em>if</em>=input file  = das Blockgeraet, von welchem gelesen wird<br />
<em>of</em>=output file = die Datei, in die das Image geschrieben wird<br />
<em>bs</em>=block size  = die Blockgröße, d.h. wie viele Daten auf einmal transferiert werden</p>
<p>Dabei kann sowohl die <em>input</em> als auch die <em>output-file</em> eine echte Datei als auch ein Blockgerät sein.</p>
<p>Man könnte also z.B. direkt von einer Platte / Partition auf die andere (hier: hda nach hdb) klonen,</p>
<blockquote><p><em>dd if=/dev/hda of=/dev/hdb</em></p></blockquote>
<p>oder von einer Datei in eine andere schreiben&#8230;<br />
Den Oberhammer finde ich aber, dass man das Ganze auch pipen und übers Netzwerk verschicken kann:</p>
<p>z.B.</p>
<p>Eine ganze Platte übers Netzwerk klonen:</p>
<blockquote>
<div><em>dd if=/dev/hdb | ssh user@host &#8220;dd of=/dev/hdb&#8221;</em></div>
</blockquote>
<p>Ein Partitions-Image während dem Vorgang komprimieren und auf einem anderen Rechner ablegen:</p>
<blockquote>
<div><em>dd if=/dev/sda3 | gzip -c | ssh user@host &#8220;cat &gt; /mnt/backup/otherhost.dd.gz&#8221;</em></div>
</blockquote>
<p>Zurückgespielt wird das Ganze ebenso einfach:</p>
<blockquote>
<div><em>ssh user@host &#8220;cat /mnt/backup/otherhost.dd.gz | gunzip&#8221; | dd of=/dev/sda3</em></div>
</blockquote>
<blockquote>
<div></div>
</blockquote>
<div>Viel Spass beim Klonen!</div>
<blockquote></blockquote>
<div>Disclaimer: Es versteht sich von selbst, dass dd gerade wegen seiner Macht auch viel Schaden anrichten kann. Daher übernehme ich keinerlei Verantwortung für die Anwendung der obigen Tips! Sowas probiert man eh erstmal an nem Testrechner aus&#8230;</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2007/03/11/das-image-von-linux/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Dienste unter Debian aktivieren und deaktivieren</title>
		<link>http://blog.pimpmyshell.de/2006/12/09/dienste-unter-debian-aktivieren-und-deaktivieren/</link>
		<comments>http://blog.pimpmyshell.de/2006/12/09/dienste-unter-debian-aktivieren-und-deaktivieren/#comments</comments>
		<pubDate>Sat, 09 Dec 2006 10:50:11 +0000</pubDate>
		<dc:creator>OJay</dc:creator>
				<category><![CDATA[hintergrundwissen]]></category>

		<guid isPermaLink="false">http://blog.pimpmyshell.de/2006/12/09/dienste-unter-debian-aktivieren-und-deaktivieren/</guid>
		<description><![CDATA[Unter Debian wird ein Dienst (hier Apache) folgendermaßen automatisch in die Runlevel-Verzeichnisse eingetragen: update-rc.d apache2 defaults Defaults bedeutet hier, daß Apache in den Runleveln 2-5 gestartet und in allen anderen beendet wird Entfernt wird er mittels update-rc.d -f apache2 remove Die Reihenfolge, vor/nach welchen anderen Scripts ein Dienst zu starten ist, wird über einen weiteren [...]]]></description>
			<content:encoded><![CDATA[<p>Unter Debian wird ein Dienst (hier Apache) folgendermaßen automatisch in die Runlevel-Verzeichnisse eingetragen:</p>
<p><code>update-rc.d apache2 defaults</code></p>
<p><em>Defaults</em> bedeutet hier, daß Apache in den Runleveln 2-5 gestartet und in allen anderen beendet wird<span id="more-45"></span><br />
Entfernt wird er mittels</p>
<p><code>update-rc.d -f apache2 remove</code></p>
<p>Die Reihenfolge, vor/nach welchen anderen Scripts ein Dienst zu starten ist, wird über einen weiteren Parameter bestimmt. Möchte man Apache z.B so einrichten, dass er nur in Runlevel 4 und 5 und nach allen anderen Diensten gestartet wird (99) , benutzt man folgende Zeile:</p>
<p><code>update-rc.d apache2  start 99 4 5 stop 01 0 1 2 3 6</code></p>
<p>Die Zeile hat folgende Bedeutung:  <em>Füge Startlinks (die mit “S99…” beginnen) in /etc/rc4.d und /etc/rc5.d ein, füge außerdem Stoplinks (die mit “K01…” beginnen) in den anderen rc.xd-Verzeichnissen ein. </em></p>
<p>Apache wird also bei Runlevel-Wechseln zuletzt gestartet und zuerst wieder beendet.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.pimpmyshell.de/2006/12/09/dienste-unter-debian-aktivieren-und-deaktivieren/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
