<?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>ubuntuverse.at &#187; linux</title>
	<atom:link href="http://www.ubuntuverse.at/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.ubuntuverse.at</link>
	<description>Berichte aus dem Ubuntu Universum</description>
	<lastBuildDate>Thu, 21 Aug 2014 09:42:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Dateien in Bildern verstecken mit steghide</title>
		<link>https://www.ubuntuverse.at/2014/08/01/dateien-in-bildern-verstecken-mit-steghide/</link>
		<comments>https://www.ubuntuverse.at/2014/08/01/dateien-in-bildern-verstecken-mit-steghide/#comments</comments>
		<pubDate>Fri, 01 Aug 2014 05:12:45 +0000</pubDate>
		<dc:creator>Bernhard Essl</dc:creator>
				<category><![CDATA[Konsole]]></category>
		<category><![CDATA[Programme]]></category>
		<category><![CDATA[Sicherheit]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[steghide]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=1817</guid>
		<description><![CDATA[Verschlüsselung ist eine feine Sache aber manchmal möchte man noch zusätzlich Dateien verstecken. Eine Möglichkeit wäre mittels Steganographie eine Datei in einem Bild zu verstecken und dann später aus dem Bild die Datei zu extrahieren. Mit dem Programm steghide ist dies möglich. steghide befindet sich in den Ubuntu Sourcen und kann mit apt installiert werden: [...]]]></description>
			<content:encoded><![CDATA[<p>Verschlüsselung ist eine feine Sache aber manchmal möchte man noch zusätzlich Dateien verstecken. Eine Möglichkeit wäre mittels <a href="http://de.wikipedia.org/wiki/Steganographie">Steganographie</a> eine Datei in einem Bild zu verstecken und dann später aus dem Bild die Datei zu extrahieren.<br />
Mit dem Programm <em>steghide</em> ist dies möglich.</p>
<p>steghide befindet sich in den Ubuntu Sourcen und kann mit apt installiert werden:</p>
<pre>sudo aptitude install steghide</pre>
<p>Nun kann die Datei die man verstecken möchte (geheim.txt) in ein Bild (img_23.jpg) geschrieben werden. Man muss dazu ein Passwort angeben.</p>
<pre>steghide embed --embedfile geheim.txt --coverfile img_23.jpg
Enter passphrase:
Re-Enter passphrase:
embedding "geheim.txt" in "img_23.jpg"... done
</pre>
<p>später kann aus dem Bild, nach Eingabe des Passwortes die Datei wieder extrahiert werden.</p>
<pre>steghide extract --stegofile img_23.jpg
Enter passphrase:
wrote extracted data to "geheim.txt".
</pre>
]]></content:encoded>
			<wfw:commentRss>https://www.ubuntuverse.at/2014/08/01/dateien-in-bildern-verstecken-mit-steghide/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Fallgruben in BASH</title>
		<link>https://www.ubuntuverse.at/2014/07/10/fallgruben-in-bash/</link>
		<comments>https://www.ubuntuverse.at/2014/07/10/fallgruben-in-bash/#comments</comments>
		<pubDate>Thu, 10 Jul 2014 05:23:49 +0000</pubDate>
		<dc:creator>Bernhard Essl</dc:creator>
				<category><![CDATA[Konsole]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=1726</guid>
		<description><![CDATA[Immer wieder bin ich angenehm überrascht wie viele Aufgaben ich mit BASH in oft einer (langen) oder nur wenigen Zeilen lösen kann. Warum schreibe ich dann fast alles in Skriptsprachen wie Ruby, Python oder Perl? Ganz einfach weil die Syntax einfacher zu merken ist und BASH doch einige Eigenheiten hat, die es zu merken gilt. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="post_img" src="http://www.ubuntuverse.at/wp-content/85504626_9a784bf601_m.jpg" alt="cat hunting the bash" title="cat hunting the bash" width="240" height="192" class="alignnone size-full wp-image-1728" /> Immer wieder bin ich angenehm überrascht wie viele Aufgaben ich mit BASH in oft einer (langen) oder nur wenigen Zeilen lösen kann. Warum schreibe ich dann fast alles in Skriptsprachen wie Ruby, Python oder Perl?<br />
Ganz einfach weil die Syntax einfacher zu merken ist und BASH doch einige Eigenheiten hat, die es zu merken gilt. </p>
<p>Darum hier ein Versuch sämtliche gern gemachte Fehler niederzuschreiben. Ich würde mich über Kommentare eurer Fallgruben von euch freuen.<br />
<span id="more-1726"></span></p>
<ol>
<li><strong>whitespaces und wildcards</strong>
<pre>
mv $file_old $file_new # falsch
</pre>
<p>Das kann bei Dateinamen mit Leerzeichen oder wildcards zu Problemen führen, wenn man sich nicht sicher ist welchen Inhalt eine Variable hat, sollte man sie in Anführungszeichen setzen.</p>
<pre>
mv "$file_old" "$file_new"
</pre>
<p>Nun können in $file_old und $file_new Leerzeichen und wildcards wie * oder ? oder [...] verwendet werden.
</li>
<li><strong>runde Klammern werden nicht erkannt</strong>
<p>Ich bin schon öfter über Posting gestolpert wo das Skript mit dieser Meldung abstürzte:</p>
<pre>Syntax error: "(" unexpected</pre>
<p>Das liegt dann meistens daran das keine BASH sondern eine abgemagerte Shell wie <em>dash</em> verwendet wurde.<br />
Welche Shell verwendet wird kann über $SHELL abgefragt werden:</p>
<pre>echo $SHELL</pre>
</li>
<li><strong>Variablen-Deklaration</strong>
<pre>
$ubuntu="super" # falsch
ubuntu = "super" # falsch
ubuntu ="super" # falsch
</pre>
<p>in BASH werden einer Variable, ohne $ und ohne Zwischenabstände Werte zugewiesen.</p>
<pre>
ubuntu="super"
</pre>
</li>
<li><strong>lesen und schreiben in die selbe Datei</strong>
<p>Es ist nicht möglich in die selbe Datei, über eine pipe zu schreiben, von der gelesen wird. In den meisten Fällen bleibt dann eine 0 Byte große Datei über.</p>
<pre>cat datei | sed s/foo/bar/ > datei # falsch</pre>
<p>Eine Lösung wäre mit einer temporären Datei zuarbeiten und diese mit der Originaldatei zu überschreiben</p>
<pre>sed 's/foo/bar/g' datei > tmpdatei &#038;&#038; mv tmpdatei datei</pre>
</li>
<li><strong>Globing verwenden</strong>
<p>Ein gern gemachter Fehler ist das verwenden von subshells in loops</p>
<pre>
for x in `ls *.jpg`; do # falsch
</pre>
<p>Hat einer der Dateinamen whitespaces wird es hier zu Fehlern kommen (siehe 1). Außerdem wird ein externes Kommando <em>ls</em> unnötig aufgerufen.<br />
In BASH sollte darum für solche Aufgaben das BASH interne Glob verwendet werden.</p>
<pre>
for i in *.jpg; do
</pre>
</li>
<li><strong>Verwenden absoluter Pfade bei externen Programmen</strong>
<p>Oft werden externe Programme in BASH ohne absoluten Pfad aufgerufen, sehr sicher ist das allerdings nicht.</p>
<pre>dateien=`ls /home/userin/`</pre>
<p>Das Problem hier könnte sein das jemand mutwillig ein Programm mit den Namen <em>ls</em> erzeugt und nicht mehr <em>/bin/ls</em> wie gedacht, sondern ein manipuliertes <em>ls</em> ausgeführt wird.<br />
Ein besserer Ansatz mit einem absoluten Pfad:</p>
<pre>ls="/bin/ls"
dateien=`$ls /home/userin/`
</pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>https://www.ubuntuverse.at/2014/07/10/fallgruben-in-bash/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Diese Woche in der Konsole #9</title>
		<link>https://www.ubuntuverse.at/2009/09/13/diese-woche-in-der-konsole-9/</link>
		<comments>https://www.ubuntuverse.at/2009/09/13/diese-woche-in-der-konsole-9/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 09:30:16 +0000</pubDate>
		<dc:creator>Bernhard Essl</dc:creator>
				<category><![CDATA[Konsole]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[diff]]></category>
		<category><![CDATA[dwik]]></category>
		<category><![CDATA[grep]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nmap]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[time]]></category>
		<category><![CDATA[timestamp]]></category>
		<category><![CDATA[tinyurl]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=1620</guid>
		<description><![CDATA[Mit diff Unterschiede zwischen zwei Verzeichnissen anzeigen. $ diff folder1 folder2 Das ganze geht auch über zwei per ssh erreichbare Server. $ diff]]></description>
			<content:encoded><![CDATA[<ol>
<li>
Mit <em>diff</em> Unterschiede zwischen zwei Verzeichnissen anzeigen.</p>
<pre>$ diff folder1 folder2</pre>
<p>Das ganze geht auch über zwei per ssh erreichbare Server. </p>
<pre>$ diff <(ssh server01 "ls /tmp/") <(ssh server02 "ls /tmp/")
1,8d0
< lost+found
< mysql.sock
< orbit-root
</pre>
</li>
<li>tinyurl von der Konsole aus verwenden.
<pre>$ curl -s http://tinyurl.com/create.php?url=http://www.ubuntuverse.at/ | \
grep -o "http:\/\/tinyurl.com\/[a-z0-9][a-z0-9]*" | uniq
</pre>
</li>
<li>
Mit <em>time</em> ist es möglich die Zeitdauer eines Befehls oder Skripts anzuzeigen (benchmark).</p>
<pre>
$ time ruby script.rb

real    0m0.017s
user    0m0.008s
sys     0m0.004s
</pre>
</li>
<li>Datum in timestamp umwandeln.
<pre>$ date --utc --date "2009-09-09 09:09:09" +%s
1252487349
</pre>
</li>
<li>Das gesamte interne Netzwerk nach erreichbaren IPs durchsuchen. <em>nmap</em> versucht dabei auch den Hersteller der Netzwerkkarte zu ermitteln.
<pre>$ sudo nmap -sP 192.168.0.0/24

Starting Nmap 4.76 ( http://nmap.org ) at 2009-09-03 18:28 CEST
Host 192.168.1.122 appears to be up.
MAC Address: 00:12:52:73:85:4C (Apple)
Host 192.168.1.181 appears to be up.
MAC Address: 00:0E:A8:D0:87:DE (Cisco Linksys)
</pre>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>https://www.ubuntuverse.at/2009/09/13/diese-woche-in-der-konsole-9/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Diagramme generieren mit Graphviz</title>
		<link>https://www.ubuntuverse.at/2009/08/19/diagramme-generieren-mit-graphviz/</link>
		<comments>https://www.ubuntuverse.at/2009/08/19/diagramme-generieren-mit-graphviz/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 05:23:40 +0000</pubDate>
		<dc:creator>Bernhard Essl</dc:creator>
				<category><![CDATA[Konsole]]></category>
		<category><![CDATA[Programme]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[diagramme]]></category>
		<category><![CDATA[dot]]></category>
		<category><![CDATA[graphviz]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.ubuntuverse.at/?p=1404</guid>
		<description><![CDATA[Nennt mich Nerd, aber ich erfreue mich an automatisch generierten Grafiken wie Diagrammen aus Datenmengen. Ein Tool das genau zu diesen Zweck verwendet werden kann ist Graphviz, damit lassen sich schnell und einfach Diagramme erstellen. Strukturdiagramme, Pfeildiagramme, automatisch erzeugte Diagramme und aufwändig manuell gestaltete Diagramme. Bevor eine Grafik erstellt werden kann wird eine Definitionsdatei erstellt [...]]]></description>
			<content:encoded><![CDATA[<p>Nennt mich Nerd, aber ich erfreue mich an automatisch generierten Grafiken wie Diagrammen aus Datenmengen. Ein Tool das genau zu diesen Zweck verwendet werden kann ist Graphviz, damit lassen sich schnell und einfach Diagramme erstellen. Strukturdiagramme, Pfeildiagramme, automatisch erzeugte Diagramme und aufwändig manuell gestaltete Diagramme. Bevor eine Grafik erstellt werden kann wird eine Definitionsdatei erstellt in der Beschreibungssprache DOT.</p>
<p>Im ersten Beispiel soll eine Grafik erzeugt werden, die von &#8220;Linux&#8221; Verbindungen zu &#8220;Debian&#8221;, &#8220;Gentoo&#8221; und &#8220;Ubuntu&#8221; zeigt.</p>
<pre>
/* linux_family_1.dot */
digraph G {
    Linux -> Debian
    Linux -> Gentoo
    Linux -> Ubuntu
}
</pre>
<p>Mit dem Kommandozeilenbefehl dot wird nun der Quelltext zu einer Grafik (GIF, PNG, SVG oder PostScript) verarbeitet. In unseren Beispiel wollen wir eine PNG Datei aus dem DOT Quelltext erzeugen.</p>
<pre>dot -Tpng linux_family_1.dot > linux_family_1.png</pre>
<p><span id="more-1404"></span></p>
<p><img src="http://www.ubuntuverse.at/wp-content/linux_family_1.png" alt="linux_family_1" title="linux_family_1" width="427" height="155" class="alignnone size-full wp-image-1407" /></p>
<p>Das ganze kann noch etwas mit Farb- und Font-Definitionen aufgewertet werden.</p>
<pre>
digraph G {
    node [fontname=Verdana,fontsize=9]
    node [style=filled]
    node [fillcolor="#EEEEEE"]
    node [color="#EEEEEE"]
    edge [color="#31CEF0"]
    node [shape=box]

    Linux -> Debian
    Linux -> Gentoo
    Linux -> Ubuntu
    Debian -> Ubuntu
}
</pre>
<p><img src="http://www.ubuntuverse.at/wp-content/linux_family_2.png" alt="linux_family_2" title="linux_family_2" width="196" height="251" class="alignnone size-full wp-image-1408" /></p>
<p>Es lässt sich noch einiges mehr mit Graphviz anstellen, ich möchte hier aber auf die Doku von <a href="http://www.graphviz.org/">Graphviz</a> und auf den Wiki-Artikel <a href="http://wiki.ubuntuusers.de/Graphviz">http://wiki.ubuntuusers.de/Graphviz</a> verweisen.</p>
<p>Zum Schluss noch ein Beziehungsdiagramm das die Tags aus den Bookmarks von meinen delicious.com Account darstellt. </p>
<p><a href="http://www.ubuntuverse.at/wp-content/delicious.png"><img src="http://www.ubuntuverse.at/wp-content/delicious-300x176.png" alt="delicious" title="delicious" width="300" height="176" class="alignnone size-medium wp-image-1418" /></a></p>
<p>Hier das Skript (Ruby) für Interessierte.</p>
<p><script src='http://pastie.org/987002.js'></script></p>
]]></content:encoded>
			<wfw:commentRss>https://www.ubuntuverse.at/2009/08/19/diagramme-generieren-mit-graphviz/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
