tag:a-hanak.de,2005:/postsa-hanak.de - Artikel2020-08-14T08:27:18Ztag:a-hanak.de,2005:Post/162020-08-14T08:27:18Z2020-08-14T08:41:26ZZugriff auf Gnome Schlüsselbund von Live CD<p>## Schritt 1: Live CD Booten und Partition mit dem Home Verzeichnis mounten</p>
<p>1. Partition herausfinden. z.B. mit dem `blkid` kommando im Terminal oder über gparted grafisch. Bei einer Standardinstallation liegt das Home-Verzeichnis mit dem Schlüsselbund in der root partition.
2. `mount [Bezeichner der Partition] /mnt`
3. Home Verzeichnis finden. Normalerweise liegt der Schlüsselbund jetzt an einem Ort wie `/mnt/home/[Benutzername]/.local/share/keyrings`</p>
<p>## Schritt 2: Benutzer im Live System anlegen und existierendes Home-Verzeichnis verwenden</p>
<p>1. Benutzer im Live-System anlegen:
`adduser --home /mnt/home/[Benutzername] --no-create-home [Benutzername]`.
2. Das gleiche Passwort wie bei Ursprünglicher Installation angeben. Achtung bei Sonderzeihen: Sicherstellen, dass das Tastaturlayout richtig ist.</p>
<p>## Schritt 3: Einloggen als Benutzer im Live System</p>
<p>1. Obere rechte Ecke -> Ausschalten / Abmelden -> Benutzer wechseln
3. Einloggen. Achtung, das Tastaturlayout ist möglicherweise falsch!
2. "Passwörter und Verschlüsselung" starten</p><p>## Schritt 1: Live CD Booten und Partition mit dem Home Verzeichnis mounten</p>
<p>1. Partition herausfinden. z.B. mit dem `blkid` kommando im Terminal oder über gparted grafisch. Bei einer Standardinstallation liegt das Home-Verzeichnis mit dem Schlüsselbund in der root partition.
2. `mount [Bezeichner der Partition] /mnt`
3. Home Verzeichnis finden. Normalerweise liegt der Schlüsselbund jetzt an einem Ort wie `/mnt/home/[Benutzername]/.local/share/keyrings`</p>
<p>## Schritt 2: Benutzer im Live System anlegen und existierendes Home-Verzeichnis verwenden</p>
<p>1. Benutzer im Live-System anlegen:
`adduser --home /mnt/home/[Benutzername] --no-create-home [Benutzername]`.
2. Das gleiche Passwort wie bei Ursprünglicher Installation angeben. Achtung bei Sonderzeihen: Sicherstellen, dass das Tastaturlayout richtig ist.</p>
<p>## Schritt 3: Einloggen als Benutzer im Live System</p>
<p>1. Obere rechte Ecke -> Ausschalten / Abmelden -> Benutzer wechseln
3. Einloggen. Achtung, das Tastaturlayout ist möglicherweise falsch!
2. "Passwörter und Verschlüsselung" starten</p>André Hanaktag:a-hanak.de,2005:Post/142016-07-14T21:24:03Z2018-04-16T23:23:45ZDRM Info von gekauften MP3's entfernen<p>Wer Musik als MP3s von Amazon oder auch Google kauft und herunterlädt, der erhält Dateien, die jederzeit dem eigentlichen Käufer wieder zugeordnet werden können. Dies ist durch eine eindeutige ID, versteckt in den ID3-Tags, möglich.
Es handelt sich dabei um "Feature", dass mir als Kunden definitiv keinen Vorteil bringt. Höchstens Ärger, sollten meine MP3's gestohlen und illegal weiter verbreitet werden. Und da mich als Hobby-Datenschützer solche Tracking-Mechanismen sowieso stören will ich sie los werden.</p>
<p>Unter Linux geht das auch extrem einfach:</p>
<p><strong>Versteckte Daten entfernen</strong></p>
<p>Zunächst braucht man das Tool namens <em>eyeD3</em> in der Version >= 0.7.1. Unter Ubuntu sind derzeit (16.04) nur zu alte Versionen verfügbar. Deshalb muss man das Tool selbst installieren.</p>
<p>Installation Schritt 1:
Herunterladen der aktuellsten Version als <em>tar.gz</em> von: <a href="http://eyed3.nicfit.net/releases/" class="ext">http://eyed3.nicfit.net/releases/</a>
Z.B. die Datei eyeD3-0.7.9.tar.gz.</p>
<p>Installation Schritt 2:
Terminal öffnen und Tool installieren.</p><div id='code_1'><pre class="active4d"><span class="line-numbers"> 1 </span> cd <span class="Operator">~</span>/Downloads
<span class="line-numbers"> 2 </span> tar -xzf eyeD3*.tar.gz
<span class="line-numbers"> 3 </span> cd eyeD3-*-final
<span class="line-numbers"> 4 </span> sudo python setup.py install
</pre></div><p>Das entfernen der unerwünschten Informationen ist dann ein Kinderspiel:</p><div id='code_2'><pre class="active4d"><span class="line-numbers"> 1 </span> eyeD3 --remove-frame PRIV Pfad/zur/Musik
</pre></div><p>Bei mir ist das beispielsweise für den Ordner Musik im Heimatverzeichnis:</p><div id='code_3'><pre class="active4d"><span class="line-numbers"> 1 </span> eyeD3 --remove-frame PRIV <span class="Operator">~</span>/Musik
</pre></div><p>Das Programm geht alle Ordner rekursiv durch und entfernt alle Tags. Selbst bei großen Bibliotheken ist das in mehreren Sekunden bis maximal Minuten erledigt.</p>
<p>Wer kein Hintergrundwissen braucht, der kann hier aufhören zu lesen.</p>
<p><strong>Informationen aus den MP3s ansehen</strong></p>
<p>Ganz einfach geht das mit einem Hexeditor. Gleich am Anfang der Datei sieht man XML-Daten, die die angesprochenen IDs enthalten. </p>
<p>Siehe dazu auch: <a href="https://binblog.info/2013/06/26/amazon-autorip-und-die-wasserzeichen/" class="ext">https://binblog.info/2013/06/26/amazon-autorip-und-die-wasserzeichen/</a></p>
<p>Alternativ zeigt die Ausgabe von</p><div id='code_4'><pre class="active4d"><span class="line-numbers"> 1 </span> eyeD3 Pfad/zur/Musik
</pre></div><p>für jede Datei Informationen an. Die Anwesenheit der "Versteckten" Daten kann man an diesen Zeilen erkennen:</p><div id='code_5'><pre class="active4d"><span class="line-numbers"> 1 </span> PRIV: [Data: 42 bytes]
<span class="line-numbers"> 2 </span> Owner Id: Google/StoreId
<span class="line-numbers"> 3 </span> PRIV: [Data: 40 bytes]
<span class="line-numbers"> 4 </span> Owner Id: Google/StoreLabelCode
</pre></div><p></p><p>Wer Musik als MP3s von Amazon oder auch Google kauft und herunterlädt, der erhält Dateien, die jederzeit dem eigentlichen Käufer wieder zugeordnet werden können. Dies ist durch eine eindeutige ID, versteckt in den ID3-Tags, möglich.
Es handelt sich dabei um "Feature", dass mir als Kunden definitiv keinen Vorteil bringt. Höchstens Ärger, sollten meine MP3's gestohlen und illegal weiter verbreitet werden. Und da mich als Hobby-Datenschützer solche Tracking-Mechanismen sowieso stören will ich sie los werden.</p>
<p>Unter Linux geht das auch extrem einfach:</p>
<p><strong>Versteckte Daten entfernen</strong></p>
<p>Zunächst braucht man das Tool namens <em>eyeD3</em> in der Version >= 0.7.1. Unter Ubuntu sind derzeit (16.04) nur zu alte Versionen verfügbar. Deshalb muss man das Tool selbst installieren.</p>
<p>Installation Schritt 1:
Herunterladen der aktuellsten Version als <em>tar.gz</em> von: <a href="http://eyed3.nicfit.net/releases/" class="ext">http://eyed3.nicfit.net/releases/</a>
Z.B. die Datei eyeD3-0.7.9.tar.gz.</p>
<p>Installation Schritt 2:
Terminal öffnen und Tool installieren.</p><div id='code_1'><pre class="active4d"><span class="line-numbers"> 1 </span> cd <span class="Operator">~</span>/Downloads
<span class="line-numbers"> 2 </span> tar -xzf eyeD3*.tar.gz
<span class="line-numbers"> 3 </span> cd eyeD3-*-final
<span class="line-numbers"> 4 </span> sudo python setup.py install
</pre></div><p>Das entfernen der unerwünschten Informationen ist dann ein Kinderspiel:</p><div id='code_2'><pre class="active4d"><span class="line-numbers"> 1 </span> eyeD3 --remove-frame PRIV Pfad/zur/Musik
</pre></div><p>Bei mir ist das beispielsweise für den Ordner Musik im Heimatverzeichnis:</p><div id='code_3'><pre class="active4d"><span class="line-numbers"> 1 </span> eyeD3 --remove-frame PRIV <span class="Operator">~</span>/Musik
</pre></div><p>Das Programm geht alle Ordner rekursiv durch und entfernt alle Tags. Selbst bei großen Bibliotheken ist das in mehreren Sekunden bis maximal Minuten erledigt.</p>
<p>Wer kein Hintergrundwissen braucht, der kann hier aufhören zu lesen.</p>
<p><strong>Informationen aus den MP3s ansehen</strong></p>
<p>Ganz einfach geht das mit einem Hexeditor. Gleich am Anfang der Datei sieht man XML-Daten, die die angesprochenen IDs enthalten. </p>
<p>Siehe dazu auch: <a href="https://binblog.info/2013/06/26/amazon-autorip-und-die-wasserzeichen/" class="ext">https://binblog.info/2013/06/26/amazon-autorip-und-die-wasserzeichen/</a></p>
<p>Alternativ zeigt die Ausgabe von</p><div id='code_4'><pre class="active4d"><span class="line-numbers"> 1 </span> eyeD3 Pfad/zur/Musik
</pre></div><p>für jede Datei Informationen an. Die Anwesenheit der "Versteckten" Daten kann man an diesen Zeilen erkennen:</p><div id='code_5'><pre class="active4d"><span class="line-numbers"> 1 </span> PRIV: [Data: 42 bytes]
<span class="line-numbers"> 2 </span> Owner Id: Google/StoreId
<span class="line-numbers"> 3 </span> PRIV: [Data: 40 bytes]
<span class="line-numbers"> 4 </span> Owner Id: Google/StoreLabelCode
</pre></div><p></p>André Hanaktag:a-hanak.de,2005:Post/132016-01-02T00:54:21Z2018-05-24T00:33:06ZParticle Web Client: Komfortabler Zugriff auf die Particle Cloud<p><strong>Particle Web Client verwenden</strong></p>
<p>Die Software ist quelloffen, frei und hier verfügbar: <a href="https://github.com/ahanak/particle-web-client" class="ext">particle-web-client auf GitHub</a>.</p>
<p>Es genügt das Projekt <a href="https://github.com/ahanak/particle-web-client/archive/master.zip" class="ext">als ZIP-Datei herunterzuladen</a>, zu entpacken und die Datei "index.html" im Browser zu öffnen. Die Dateien können auch einfach auf einen Webserver zu kopiert werden.</p>
<p>Eine aktuelle Version des Projektes ist stets unter <a href="https://particle.a-hanak.de" class="ext">https://particle.a-hanak.de</a> zu finden. Hier kann die Software von jedermann verwendet werden. Benötigt wird lediglich ein Account in der <a href="https://build.particle.io/build/new" class="ext">Particle Cloud</a>.</p>
<p>Screenshots sind diesem Artikel angehängt.</p>
<p><strong>Features</strong></p>
<p>Hier eine Liste der wichtigsten Funktionen:
<ul>
<li>Als Webanwendung auf nahezu jedem Gerät nutzbar</li>
<li>Keine Übertragung von Applikationsdaten zu dem Webserver, auf dem die Anwendung liegt</li>
<li>Keine Ausführung von Code auf dem Server</li>
<li>Auflisten von Geräten in der Cloud</li>
<li>Aufruf von Funktionen auf dem Spark Core / Photon / ...</li>
<li>Abruf von Variablen</li>
<li>Auflisten von Events der Geräte</li>
<li>Auflisten und Filtern aller Events des Accounts</li>
<li>Veröffentlichen von Events</li>
</ul></p>
<p><strong>Geplante Features</strong></p>
<p>Folgende Features werde ich eventuell noch ergänzen:
<ul>
<li>Unterstützung für Phonegap Build, um Applikationen für Android, iPhone, Windows Phone etc. zu generieren</li>
<li>Unterstützung von Plugins, um eigene Benutzerinterfaces für Particle-Applikationen erstellen zu können</li>
<li>Beispiel-Plugin für Tinker</li>
</ul></p>
<p><strong>Technik</strong></p>
<p>Folgende Techniken / Projekte wurden eingesetzt:
<ul>
<li>
<a href="//angularjs.org/" class="ext">AngularJs</a> (JavaScript Framework)</li>
<li>
<a href="//getbootstrap.com/" class="ext">Bootstrap</a> (Framework für das Design)</li>
<li>
<a href="//docs.particle.io/reference/javascript/" class="ext">ParticleJS</a> (Einsatz derzeit nur für den Empfang von Events)</li>
</ul></p>
<p>Da dies meine erste AngularJS-Applikation ist, bin ich auch für alle Hinweise und konstruktive Kritik dankbar ;-)
</p><p><strong>Particle Web Client verwenden</strong></p>
<p>Die Software ist quelloffen, frei und hier verfügbar: <a href="https://github.com/ahanak/particle-web-client" class="ext">particle-web-client auf GitHub</a>.</p>
<p>Es genügt das Projekt <a href="https://github.com/ahanak/particle-web-client/archive/master.zip" class="ext">als ZIP-Datei herunterzuladen</a>, zu entpacken und die Datei "index.html" im Browser zu öffnen. Die Dateien können auch einfach auf einen Webserver zu kopiert werden.</p>
<p>Eine aktuelle Version des Projektes ist stets unter <a href="https://particle.a-hanak.de" class="ext">https://particle.a-hanak.de</a> zu finden. Hier kann die Software von jedermann verwendet werden. Benötigt wird lediglich ein Account in der <a href="https://build.particle.io/build/new" class="ext">Particle Cloud</a>.</p>
<p>Screenshots sind diesem Artikel angehängt.</p>
<p><strong>Features</strong></p>
<p>Hier eine Liste der wichtigsten Funktionen:
<ul>
<li>Als Webanwendung auf nahezu jedem Gerät nutzbar</li>
<li>Keine Übertragung von Applikationsdaten zu dem Webserver, auf dem die Anwendung liegt</li>
<li>Keine Ausführung von Code auf dem Server</li>
<li>Auflisten von Geräten in der Cloud</li>
<li>Aufruf von Funktionen auf dem Spark Core / Photon / ...</li>
<li>Abruf von Variablen</li>
<li>Auflisten von Events der Geräte</li>
<li>Auflisten und Filtern aller Events des Accounts</li>
<li>Veröffentlichen von Events</li>
</ul></p>
<p><strong>Geplante Features</strong></p>
<p>Folgende Features werde ich eventuell noch ergänzen:
<ul>
<li>Unterstützung für Phonegap Build, um Applikationen für Android, iPhone, Windows Phone etc. zu generieren</li>
<li>Unterstützung von Plugins, um eigene Benutzerinterfaces für Particle-Applikationen erstellen zu können</li>
<li>Beispiel-Plugin für Tinker</li>
</ul></p>
<p><strong>Technik</strong></p>
<p>Folgende Techniken / Projekte wurden eingesetzt:
<ul>
<li>
<a href="//angularjs.org/" class="ext">AngularJs</a> (JavaScript Framework)</li>
<li>
<a href="//getbootstrap.com/" class="ext">Bootstrap</a> (Framework für das Design)</li>
<li>
<a href="//docs.particle.io/reference/javascript/" class="ext">ParticleJS</a> (Einsatz derzeit nur für den Empfang von Events)</li>
</ul></p>
<p>Da dies meine erste AngularJS-Applikation ist, bin ich auch für alle Hinweise und konstruktive Kritik dankbar ;-)
</p>André Hanaktag:a-hanak.de,2005:Post/62014-04-23T10:18:05Z2018-04-16T23:23:45ZF1 als Tastenkürzel in Ubuntu<p>Bei aktuellen Versionen von Ubuntu (zumindest bei 13.10 und 14.04) ist es nicht mehr möglich in den Einstellungen für Tastenkürzel die F1 Taste zu verwenden. Will man diese Taste zuweisen erscheint nur die Hilfe zu den Tastatureinstellungen.</p>
<p>Das Problem lässt sich lösen, indem man diese Konfiguration manuell vornimmt. Dazu öffnet man den dconf-editor und navigiert zu:</p><div id='code_1'><pre class="active4d"><span class="line-numbers"> 1 </span> org<span class="Operator">/</span>gnome<span class="Operator">/</span>settings<span class="Operator">-</span>daemon<span class="Operator">/</span>plugins<span class="Operator">/</span>media<span class="Operator">-</span>keys
</pre></div><p>Dort sucht man sich den passenden Eintrag aus und setzt als Wert: F1</p>
<p>Weitere Infos zum dconf-editor gib es hier: <a href="http://wiki.ubuntuusers.de/GNOME_Konfiguration/dconf" class="ext">http://wiki.ubuntuusers.de/GNOME_Konfiguration/dconf</a></p>
<p>Anmerkung: Das ganze ist auch schon seit längerem als Bug in launchpad erfasst:
<a href="https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1179543" class="ext">https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1179543</a></p><p>Bei aktuellen Versionen von Ubuntu (zumindest bei 13.10 und 14.04) ist es nicht mehr möglich in den Einstellungen für Tastenkürzel die F1 Taste zu verwenden. Will man diese Taste zuweisen erscheint nur die Hilfe zu den Tastatureinstellungen.</p>
<p>Das Problem lässt sich lösen, indem man diese Konfiguration manuell vornimmt. Dazu öffnet man den dconf-editor und navigiert zu:</p><div id='code_1'><pre class="active4d"><span class="line-numbers"> 1 </span> org<span class="Operator">/</span>gnome<span class="Operator">/</span>settings<span class="Operator">-</span>daemon<span class="Operator">/</span>plugins<span class="Operator">/</span>media<span class="Operator">-</span>keys
</pre></div><p>Dort sucht man sich den passenden Eintrag aus und setzt als Wert: F1</p>
<p>Weitere Infos zum dconf-editor gib es hier: <a href="http://wiki.ubuntuusers.de/GNOME_Konfiguration/dconf" class="ext">http://wiki.ubuntuusers.de/GNOME_Konfiguration/dconf</a></p>
<p>Anmerkung: Das ganze ist auch schon seit längerem als Bug in launchpad erfasst:
<a href="https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1179543" class="ext">https://bugs.launchpad.net/ubuntu/+source/unity/+bug/1179543</a></p>André Hanaktag:a-hanak.de,2005:Post/52013-07-23T13:09:16Z2018-04-16T23:23:45ZOTR Pidgin Plugin 4 für Ubuntu 12.04<p>Mittlerweile gibt es Version 4.0.0 des pidgin-otr plugins und der zugehörigen libotr für verschlüsselte Chats. Siehe: <a href="http://www.cypherpunks.ca/otr" class="ext">http://www.cypherpunks.ca/otr</a></p>
<p>Der Grund für mich, warum ich die aktuelle Version installieren wollte war, dass diese auch dann noch funktioniert, wenn eine Person z.B. bei Jabber an mehreren Geräten gleichzeitig angemeldet ist. Bisher führte dies zu ziemlich nervigen OTR-Fehlermeldungen.</p>
<p>Die Installation ist im Grunde straight-forward. Einziger Stolperstein ist, dass Pidgin das Plugin wohl nicht findet, wenn es unter /usr/local/ liegt. Deshalb muss man "--prefix=/usr" bei configure mit angeben.</p>
<p><strong>Schritt 1: Vorbereitungen</strong>
Deinstallation des alten Plugins und Installation der Pidgin-Header:</p><div id='code_1'><pre class="active4d"><span class="line-numbers"> 1 </span> sudo apt-get remove pidgin-otr
<span class="line-numbers"> 2 </span> sudo apt-get install pidgin-dev
</pre></div><p><strong>Schritt 2: Installation von libotr</strong></p><div id='code_2'><pre class="active4d"><span class="line-numbers"> 1 </span> wget <span class="String"><span class="String">"</span>http://www.cypherpunks.ca/otr/libotr-4.0.0.tar.gz<span class="String">"</span></span>
<span class="line-numbers"> 2 </span> tar -xvf libotr-4.0.0.tar.gz
<span class="line-numbers"> 3 </span> cd libotr-4.0.0
<span class="line-numbers"> 4 </span> ./configure --prefix=/usr
<span class="line-numbers"> 5 </span> make
<span class="line-numbers"> 6 </span> sudo make install
</pre></div><p><strong>Schritt 3: Installation von pidgin-otr (Pidgin Plugin)</strong></p><div id='code_3'><pre class="active4d"><span class="line-numbers"> 1 </span> wget <span class="String"><span class="String">"</span>http://www.cypherpunks.ca/otr/pidgin-otr-4.0.0.tar.gz<span class="String">"</span></span>
<span class="line-numbers"> 2 </span> tar -xvf pidgin-otr-4.0.0.tar.gz
<span class="line-numbers"> 3 </span> cd pidgin-otr-4.0.0
<span class="line-numbers"> 4 </span> ./configure --prefix=/usr
<span class="line-numbers"> 5 </span> make
<span class="line-numbers"> 6 </span> sudo make install
</pre></div><p><strong>Schritt 4: Neustart von Pidgin</strong>
Pidgin muss anschließend (neu) gestartet werden. Unter Werkzeuge->Erweiterungen sollte nun das Plugin zu finden sein: "Off-the-Record Messaging 4.0.0". Sollte es noch nicht aktiviert sein, so muss es aktiviert und Pidgin neu gestartet werden.</p><p>Mittlerweile gibt es Version 4.0.0 des pidgin-otr plugins und der zugehörigen libotr für verschlüsselte Chats. Siehe: <a href="http://www.cypherpunks.ca/otr" class="ext">http://www.cypherpunks.ca/otr</a></p>
<p>Der Grund für mich, warum ich die aktuelle Version installieren wollte war, dass diese auch dann noch funktioniert, wenn eine Person z.B. bei Jabber an mehreren Geräten gleichzeitig angemeldet ist. Bisher führte dies zu ziemlich nervigen OTR-Fehlermeldungen.</p>
<p>Die Installation ist im Grunde straight-forward. Einziger Stolperstein ist, dass Pidgin das Plugin wohl nicht findet, wenn es unter /usr/local/ liegt. Deshalb muss man "--prefix=/usr" bei configure mit angeben.</p>
<p><strong>Schritt 1: Vorbereitungen</strong>
Deinstallation des alten Plugins und Installation der Pidgin-Header:</p><div id='code_1'><pre class="active4d"><span class="line-numbers"> 1 </span> sudo apt-get remove pidgin-otr
<span class="line-numbers"> 2 </span> sudo apt-get install pidgin-dev
</pre></div><p><strong>Schritt 2: Installation von libotr</strong></p><div id='code_2'><pre class="active4d"><span class="line-numbers"> 1 </span> wget <span class="String"><span class="String">"</span>http://www.cypherpunks.ca/otr/libotr-4.0.0.tar.gz<span class="String">"</span></span>
<span class="line-numbers"> 2 </span> tar -xvf libotr-4.0.0.tar.gz
<span class="line-numbers"> 3 </span> cd libotr-4.0.0
<span class="line-numbers"> 4 </span> ./configure --prefix=/usr
<span class="line-numbers"> 5 </span> make
<span class="line-numbers"> 6 </span> sudo make install
</pre></div><p><strong>Schritt 3: Installation von pidgin-otr (Pidgin Plugin)</strong></p><div id='code_3'><pre class="active4d"><span class="line-numbers"> 1 </span> wget <span class="String"><span class="String">"</span>http://www.cypherpunks.ca/otr/pidgin-otr-4.0.0.tar.gz<span class="String">"</span></span>
<span class="line-numbers"> 2 </span> tar -xvf pidgin-otr-4.0.0.tar.gz
<span class="line-numbers"> 3 </span> cd pidgin-otr-4.0.0
<span class="line-numbers"> 4 </span> ./configure --prefix=/usr
<span class="line-numbers"> 5 </span> make
<span class="line-numbers"> 6 </span> sudo make install
</pre></div><p><strong>Schritt 4: Neustart von Pidgin</strong>
Pidgin muss anschließend (neu) gestartet werden. Unter Werkzeuge->Erweiterungen sollte nun das Plugin zu finden sein: "Off-the-Record Messaging 4.0.0". Sollte es noch nicht aktiviert sein, so muss es aktiviert und Pidgin neu gestartet werden.</p>André Hanaktag:a-hanak.de,2005:Post/32011-01-13T01:25:04Z2018-04-16T23:33:51ZSeagate Festplatte mit defekter Firmware reparieren<p>Es ist schon etwas länger her, als sich folgendes ereignete:
Ein Freund schrieb mir im Chat etwas wie "Ich muss mal kurz neustarten". Nach etwa zehn Minuten ohne Lebenszeichen klingelte mein Telefon. Sein Computer hängte beim Hochfahren, während das Bios versucht die Festplatten zu erkennen. Die Ursache war schnell gefunden: Die Festplatte war defekt. Natürlich wurden regelmäßig Backups angefertigt, doch ausgerechnet die neuesten Urlaubsbilder schienen endgültig verloren. Nach langer Google-Suche fand und schickte er mir folgenden Artikel, der die Rettung versprach: <a href="http://www.mapleleafmountain.com/seagatebrick.html" class="ext">http://www.mapleleafmountain.com/seagatebrick.html</a></p>
<p>Es hörte sich erstmal sehr abenteuerlich an: Aufgrund defekter Firmware bei einer bestimmten Seagate Festplatte könne es passieren, dass diese auf einmal völlig überraschend nicht mehr vom PC erkannt wird. Da es sich jedoch "nur" um einen Firmware Defekt handelt, sei es möglich die Festplatte wieder zum Laufen zu bringen. Man müsse nur zwei Pins des Jumper Bereichs der Festplatte über einen Pegelwandler mit der Seriellen Schnittstelle des PCs verbinden.</p>
<p>Ein paar Tage später hatte ich also selber das Vergnügen eine solche Festplatte zu reparieren. Dieser Artikel beschreibt kurz mein Vorgehen mit Hilfe von ein paar Bildern. Dabei bin ich mangels Ausstattung nicht exakt nach obiger Anleitung vorgegangen. Diese Alternativen möchte ich kurz erklären. Was mich dabei sehr überrascht hat: Obwohl das Vorgehen so abenteuerlich klingt, hat es perfekt funktioniert. Nach geschätzten zwei Stunden Arbeit lief die Festplatte wieder. Mein Weg ist übrigens nicht so schön wie in oben genannter Aneitung, sondern eher nach dem Motto "Quick & Dirty".</p>
<p><strong>Symptome</strong>
Nach einem Neustart hing der Computer beim Hochfahren, während das Bios versucht die Festplatten zu erkennen. Das Problem ist wohl ein Firmware Fehler, der dazu führt, dass sich die Festplatte dauerhaft im Zustand "busy" befindet.</p>
<p><strong>Vorgehen allgemein</strong>
Dieser Absatz ist für diejenigen, die die oben genannte Anleitung noch nicht gelesen haben und sich einen Überblick verschaffen wollen.
Um mit der Firmware kommunizieren zu können muss man die Festplatte über einen Pegelwandler mit der Seriellen Schnittstelle eines Computers verbinden. Dann kann man beispielsweise mit dem zu Windows gehörenden Programm "Hyperterminal" Befehle an die Festplatte schicken. Hat man die Festplatte angeschlossen geht man wie folgt vor:
<ol>
<li>Hyperterminal starten und Verbindung herstellen, Festplatte mit Strom versorgen. Liegt der Defekt tatsächlich vor, so sollte nach kurzer Zeit eine Meldung angezeigt werden, die mit "LED:01" beginnt</li> <li>Festplatte abstecken und die Kontakte für den Motor der Festplatte unterbrechen.</li> <li>Die Festplatte einschalten und ein paar Befehle eingeben</li> <li>Während die Platte Strom hat, die elektrische Verbindung zum Motor wieder herstellen</li> <li>Wieder ein paar Befehle eingeben</li> <li>Strom von Festplatte ab- und wieder anstecken</li> <li>Die letzten Befehle eingeben</li> <li>Jetzt kann man alles von der Festplatte abstecken und diese wieder ganz normal im Computer einbauen und verwenden</li>
</ol>
<strong>Was anders gemacht wurde als in der oben verlinkten Anleitung</strong>
Im großen und ganzen gab es zwei Probleme: Erstens fehlte es an einem (sehr kleinen) Torx Schraubendreher, zweitens hatten wir keinen Pegelwandler wie er in der Anleitung verwendet wird.
Zum Problem mit dem Pegelwandler. Da hab ich mich zum Glück erinnert, dass mein Mikrokontroller Board von Pollin so einen Wandler besitzt, es wurde also dieser Wandler verwendet. Einfach das Board mit Strom versorgen, RS232 Schnitstelle mit dem Computer verbinden und die Jumper 1 und 2 entfernen und stattdessen ein Kabel anschließen welches mit der Festplatte verbunden wird. Als Kabel diente ein altes Audio Verbindungskabel für CD-Rom Laufwerke. Das hat an beiden Enden einen schwarzen vierpoligen Pfostenstecker und an einem Ende zusätzlich einen weißen etwas kleineren Stecker. Aus diesem habe ich die Kontakte herausgelöst und sie an der Festplatte angesteckt. Man benötigt sicher nicht das komplette Evaluationsboard. Der MAX232 IC sollte schon ausreichen.
Mehr Informationen:
<ul>
<li>Evaluationsboard bei Pollin, Schaltplan herunterladbar: <a href="http://www.pollin.de/shop/dt/NTI5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_V2_0_1_Fertigmodul.html" class="ext">http://www.pollin.de/shop/dt/NTI5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_V2_0_1_Fertigmodul.html</a> </li> <li>Info zum MAX232 Pegelumsetzer: <a href="http://www.elektronik-magazin.de/page/der-pegelumsetzer-max232-15" class="ext">http://www.elektronik-magazin.de/page/der-pegelumsetzer-max232-15</a> </li> </ul>
Da kein passender Schraubendreher vorhanden war wurde die Platine nicht abgenommen, stattdessen half eine alte Karte weiter. (Wie eine Kreditkarte, nur etwas dünner und flexibler. Einlaminiertes Papier würde sich vermutlich auch gut eignen.) Von dieser wurde ein Streifen abgeschnitten und unter die Kontakte geschoben. Vorteil: Kein Entfernen der Platine nötig, leichtes entfernen des Streifens möglich.</p><p>Es ist schon etwas länger her, als sich folgendes ereignete:
Ein Freund schrieb mir im Chat etwas wie "Ich muss mal kurz neustarten". Nach etwa zehn Minuten ohne Lebenszeichen klingelte mein Telefon. Sein Computer hängte beim Hochfahren, während das Bios versucht die Festplatten zu erkennen. Die Ursache war schnell gefunden: Die Festplatte war defekt. Natürlich wurden regelmäßig Backups angefertigt, doch ausgerechnet die neuesten Urlaubsbilder schienen endgültig verloren. Nach langer Google-Suche fand und schickte er mir folgenden Artikel, der die Rettung versprach: <a href="http://www.mapleleafmountain.com/seagatebrick.html" class="ext">http://www.mapleleafmountain.com/seagatebrick.html</a></p>
<p>Es hörte sich erstmal sehr abenteuerlich an: Aufgrund defekter Firmware bei einer bestimmten Seagate Festplatte könne es passieren, dass diese auf einmal völlig überraschend nicht mehr vom PC erkannt wird. Da es sich jedoch "nur" um einen Firmware Defekt handelt, sei es möglich die Festplatte wieder zum Laufen zu bringen. Man müsse nur zwei Pins des Jumper Bereichs der Festplatte über einen Pegelwandler mit der Seriellen Schnittstelle des PCs verbinden.</p>
<p>Ein paar Tage später hatte ich also selber das Vergnügen eine solche Festplatte zu reparieren. Dieser Artikel beschreibt kurz mein Vorgehen mit Hilfe von ein paar Bildern. Dabei bin ich mangels Ausstattung nicht exakt nach obiger Anleitung vorgegangen. Diese Alternativen möchte ich kurz erklären. Was mich dabei sehr überrascht hat: Obwohl das Vorgehen so abenteuerlich klingt, hat es perfekt funktioniert. Nach geschätzten zwei Stunden Arbeit lief die Festplatte wieder. Mein Weg ist übrigens nicht so schön wie in oben genannter Aneitung, sondern eher nach dem Motto "Quick & Dirty".</p>
<p><strong>Symptome</strong>
Nach einem Neustart hing der Computer beim Hochfahren, während das Bios versucht die Festplatten zu erkennen. Das Problem ist wohl ein Firmware Fehler, der dazu führt, dass sich die Festplatte dauerhaft im Zustand "busy" befindet.</p>
<p><strong>Vorgehen allgemein</strong>
Dieser Absatz ist für diejenigen, die die oben genannte Anleitung noch nicht gelesen haben und sich einen Überblick verschaffen wollen.
Um mit der Firmware kommunizieren zu können muss man die Festplatte über einen Pegelwandler mit der Seriellen Schnittstelle eines Computers verbinden. Dann kann man beispielsweise mit dem zu Windows gehörenden Programm "Hyperterminal" Befehle an die Festplatte schicken. Hat man die Festplatte angeschlossen geht man wie folgt vor:
<ol>
<li>Hyperterminal starten und Verbindung herstellen, Festplatte mit Strom versorgen. Liegt der Defekt tatsächlich vor, so sollte nach kurzer Zeit eine Meldung angezeigt werden, die mit "LED:01" beginnt</li> <li>Festplatte abstecken und die Kontakte für den Motor der Festplatte unterbrechen.</li> <li>Die Festplatte einschalten und ein paar Befehle eingeben</li> <li>Während die Platte Strom hat, die elektrische Verbindung zum Motor wieder herstellen</li> <li>Wieder ein paar Befehle eingeben</li> <li>Strom von Festplatte ab- und wieder anstecken</li> <li>Die letzten Befehle eingeben</li> <li>Jetzt kann man alles von der Festplatte abstecken und diese wieder ganz normal im Computer einbauen und verwenden</li>
</ol>
<strong>Was anders gemacht wurde als in der oben verlinkten Anleitung</strong>
Im großen und ganzen gab es zwei Probleme: Erstens fehlte es an einem (sehr kleinen) Torx Schraubendreher, zweitens hatten wir keinen Pegelwandler wie er in der Anleitung verwendet wird.
Zum Problem mit dem Pegelwandler. Da hab ich mich zum Glück erinnert, dass mein Mikrokontroller Board von Pollin so einen Wandler besitzt, es wurde also dieser Wandler verwendet. Einfach das Board mit Strom versorgen, RS232 Schnitstelle mit dem Computer verbinden und die Jumper 1 und 2 entfernen und stattdessen ein Kabel anschließen welches mit der Festplatte verbunden wird. Als Kabel diente ein altes Audio Verbindungskabel für CD-Rom Laufwerke. Das hat an beiden Enden einen schwarzen vierpoligen Pfostenstecker und an einem Ende zusätzlich einen weißen etwas kleineren Stecker. Aus diesem habe ich die Kontakte herausgelöst und sie an der Festplatte angesteckt. Man benötigt sicher nicht das komplette Evaluationsboard. Der MAX232 IC sollte schon ausreichen.
Mehr Informationen:
<ul>
<li>Evaluationsboard bei Pollin, Schaltplan herunterladbar: <a href="http://www.pollin.de/shop/dt/NTI5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_V2_0_1_Fertigmodul.html" class="ext">http://www.pollin.de/shop/dt/NTI5OTgxOTk-/Bausaetze_Module/Bausaetze/ATMEL_Evaluations_Board_V2_0_1_Fertigmodul.html</a> </li> <li>Info zum MAX232 Pegelumsetzer: <a href="http://www.elektronik-magazin.de/page/der-pegelumsetzer-max232-15" class="ext">http://www.elektronik-magazin.de/page/der-pegelumsetzer-max232-15</a> </li> </ul>
Da kein passender Schraubendreher vorhanden war wurde die Platine nicht abgenommen, stattdessen half eine alte Karte weiter. (Wie eine Kreditkarte, nur etwas dünner und flexibler. Einlaminiertes Papier würde sich vermutlich auch gut eignen.) Von dieser wurde ein Streifen abgeschnitten und unter die Kontakte geschoben. Vorteil: Kein Entfernen der Platine nötig, leichtes entfernen des Streifens möglich.</p>André Hanaktag:a-hanak.de,2005:Post/22011-01-01T16:02:58Z2018-04-16T23:23:45ZRoot Benutzer in der Linux Kommandozeile hervorheben<p>Da man als Root Benutzer unter Linux sehr viel Schaden am System anrichten kann, ist es sinnvoll möglichst oft als normaler Benutzer zu arbeiten. Eine Root Shell sollte man nur dann verwenden, wenn es nicht anders geht. Schnell vergisst man aber, dass man gerade als Root arbeitet. Der so genannte Prompt, z.B. "root@host:Pfad#", weißt zwar auf die Root Shell hin, wird aber schnell übersehen.
Da macht es Sinn die Root Shell zu Kennzeichnen, so dass man während dem Arbeiten ständig daran erinnert wird. In diesem Fall soll der Benutzer "root" mit roter Farbe im Prompt hervorgehoben werden.</p>
<p>Der Artikel bezieht sich auf Ubuntu 10.04, wurde aber auch schon unter Debian getestet. Bei Anderen Linux Distribution sollte das Vorgehen sehr Ähnlich sein.</p>
<p><strong>Allgemein: Prompt Farbe ändern</strong>
Das Aussehen des Prompts wird in der der Datei ".bashrc" festgelegt. Es ist eine versteckte Datei, die im Heimatverzeichnis jedes Benutzers liegt. Dort wird der Variablen PS1 ein String zugewiesen.
Unter Ubuntu finden sich beispielsweise folgende Zeilen in der Datei:</p><div id='code_1'><pre class="active4d"><span class="line-numbers"> 1 </span> <span class="Keyword">if</span> [ <span class="String"><span class="String">"</span><span class="Variable"><span class="Variable">$</span>color_prompt</span><span class="String">"</span></span> = yes ]<span class="Operator">;</span> <span class="Keyword">then</span>
<span class="line-numbers"> 2 </span> PS1=<span class="String"><span class="String">'</span>${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ <span class="String">'</span></span>
<span class="line-numbers"> 3 </span> <span class="Keyword">else</span>
<span class="line-numbers"> 4 </span> PS1=<span class="String"><span class="String">'</span>${debian_chroot:+($debian_chroot)}\u@\h:\w\$ <span class="String">'</span></span>
<span class="line-numbers"> 5 </span> <span class="Keyword">fi</span>
</pre></div><p>Interessant ist hier die vierte Zeile, dort wird normalerweise der Prompt definiert.</p>
<p>Möchte man den Benutzer farbig hervorheben, so kann man vor dem "\u" einen Farbcode setzen und danach die Farbe wieder zurücksetzen.
Die Farbcodes sind:</p><div id='code_2'><pre class="active4d"><span class="line-numbers"> 1 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[0m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Zurücksetzen</span>
<span class="line-numbers"> 2 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[4m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Unterstreichen</span>
<span class="line-numbers"> 3 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[30m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe schwarz</span>
<span class="line-numbers"> 4 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[31m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe rot</span>
<span class="line-numbers"> 5 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[32m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe grün</span>
<span class="line-numbers"> 6 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[33m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe gelb</span>
<span class="line-numbers"> 7 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[34m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe blau</span>
<span class="line-numbers"> 8 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[35m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe magenta</span>
<span class="line-numbers"> 9 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[36m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe cyan</span>
<span class="line-numbers"> 10 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[37m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe weiß</span>
<span class="line-numbers"> 11 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[40m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe schwarz</span>
<span class="line-numbers"> 12 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[41m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe rot</span>
<span class="line-numbers"> 13 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[42m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe grün</span>
<span class="line-numbers"> 14 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[43m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe gelb</span>
<span class="line-numbers"> 15 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[44m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe blau</span>
<span class="line-numbers"> 16 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[45m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe magenta</span>
<span class="line-numbers"> 17 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[46m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe cyan</span>
<span class="line-numbers"> 18 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[47m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe weiß</span>
</pre></div><p>Will man den Benutzernamen in einer Root Shell rot hervorheben, so kann man in der Datei /root/.bashrc oben erwähnte vierte Zeile durch diese ersetzen:</p><div id='code_3'><pre class="active4d"><span class="line-numbers"> 1 </span> PS1=<span class="String"><span class="String">'</span>${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\h:\w\$ <span class="String">'</span></span>
</pre></div><p><strong>Hervorhebung für Sudo</strong>
Obige Lösung funktioniert nur, wenn man sich als root anmeldet oder das "su" Kommando verwendet. Ich verwende jedoch meistens das Kommando "sudo -s". Sudo ruft dabei nicht die .bashrc des Root-Benutzers auf, sondern die des Benutzers, der sudo verwendet.
Deshalb habe ich zusätzlich meine eigene .bashrc so bearbeitet, dass der Benutzer farbig hervorgehoben wird, wenn es sich um Root handelt.
Dazu ersetzt man die oben erwähnte vierte Zeile durch folgenden Code:</p><div id='code_4'><pre class="active4d"><span class="line-numbers"> 1 </span> <span class="Keyword">if</span> [ <span class="String"><span class="String">`</span>id -u<span class="String">`</span></span> -eq <span class="String"><span class="String">"</span>0<span class="String">"</span></span> ]<span class="Operator">;</span> <span class="Keyword">then</span>
<span class="line-numbers"> 2 </span> PS1=<span class="String"><span class="String">'</span>${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\h:\w\$ <span class="String">'</span></span>
<span class="line-numbers"> 3 </span> <span class="Keyword">else</span>
<span class="line-numbers"> 4 </span> PS1=<span class="String"><span class="String">'</span>${debian_chroot:+($debian_chroot)}\u@\h:\w\$ <span class="String">'</span></span>
<span class="line-numbers"> 5 </span> <span class="Keyword">fi</span>
</pre></div><p>Jetzt wird auch bei der Verwendung von Sudo der Benutzer in einer Root Shell rot hervorgehoben.</p>
<p><strong>Link</strong>
Folgender Artikel beschreibt ganz gut wie man den Prompt unter Ubuntu anpassen kann: <a href="http://ubuntuforums.org/showthread.php?t=614743" class="ext">http://ubuntuforums.org/showthread.php?t=614743</a></p><p>Da man als Root Benutzer unter Linux sehr viel Schaden am System anrichten kann, ist es sinnvoll möglichst oft als normaler Benutzer zu arbeiten. Eine Root Shell sollte man nur dann verwenden, wenn es nicht anders geht. Schnell vergisst man aber, dass man gerade als Root arbeitet. Der so genannte Prompt, z.B. "root@host:Pfad#", weißt zwar auf die Root Shell hin, wird aber schnell übersehen.
Da macht es Sinn die Root Shell zu Kennzeichnen, so dass man während dem Arbeiten ständig daran erinnert wird. In diesem Fall soll der Benutzer "root" mit roter Farbe im Prompt hervorgehoben werden.</p>
<p>Der Artikel bezieht sich auf Ubuntu 10.04, wurde aber auch schon unter Debian getestet. Bei Anderen Linux Distribution sollte das Vorgehen sehr Ähnlich sein.</p>
<p><strong>Allgemein: Prompt Farbe ändern</strong>
Das Aussehen des Prompts wird in der der Datei ".bashrc" festgelegt. Es ist eine versteckte Datei, die im Heimatverzeichnis jedes Benutzers liegt. Dort wird der Variablen PS1 ein String zugewiesen.
Unter Ubuntu finden sich beispielsweise folgende Zeilen in der Datei:</p><div id='code_1'><pre class="active4d"><span class="line-numbers"> 1 </span> <span class="Keyword">if</span> [ <span class="String"><span class="String">"</span><span class="Variable"><span class="Variable">$</span>color_prompt</span><span class="String">"</span></span> = yes ]<span class="Operator">;</span> <span class="Keyword">then</span>
<span class="line-numbers"> 2 </span> PS1=<span class="String"><span class="String">'</span>${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ <span class="String">'</span></span>
<span class="line-numbers"> 3 </span> <span class="Keyword">else</span>
<span class="line-numbers"> 4 </span> PS1=<span class="String"><span class="String">'</span>${debian_chroot:+($debian_chroot)}\u@\h:\w\$ <span class="String">'</span></span>
<span class="line-numbers"> 5 </span> <span class="Keyword">fi</span>
</pre></div><p>Interessant ist hier die vierte Zeile, dort wird normalerweise der Prompt definiert.</p>
<p>Möchte man den Benutzer farbig hervorheben, so kann man vor dem "\u" einen Farbcode setzen und danach die Farbe wieder zurücksetzen.
Die Farbcodes sind:</p><div id='code_2'><pre class="active4d"><span class="line-numbers"> 1 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[0m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Zurücksetzen</span>
<span class="line-numbers"> 2 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[4m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Unterstreichen</span>
<span class="line-numbers"> 3 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[30m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe schwarz</span>
<span class="line-numbers"> 4 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[31m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe rot</span>
<span class="line-numbers"> 5 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[32m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe grün</span>
<span class="line-numbers"> 6 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[33m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe gelb</span>
<span class="line-numbers"> 7 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[34m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe blau</span>
<span class="line-numbers"> 8 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[35m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe magenta</span>
<span class="line-numbers"> 9 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[36m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe cyan</span>
<span class="line-numbers"> 10 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[37m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Schriftfarbe weiß</span>
<span class="line-numbers"> 11 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[40m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe schwarz</span>
<span class="line-numbers"> 12 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[41m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe rot</span>
<span class="line-numbers"> 13 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[42m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe grün</span>
<span class="line-numbers"> 14 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[43m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe gelb</span>
<span class="line-numbers"> 15 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[44m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe blau</span>
<span class="line-numbers"> 16 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[45m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe magenta</span>
<span class="line-numbers"> 17 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[46m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe cyan</span>
<span class="line-numbers"> 18 </span> <span class="UserDefinedConstant">\[</span><span class="UserDefinedConstant">\0</span>33[47m<span class="UserDefinedConstant">\]</span> <span class="LineComment"><span class="LineComment">#</span>Hintergrundfarbe weiß</span>
</pre></div><p>Will man den Benutzernamen in einer Root Shell rot hervorheben, so kann man in der Datei /root/.bashrc oben erwähnte vierte Zeile durch diese ersetzen:</p><div id='code_3'><pre class="active4d"><span class="line-numbers"> 1 </span> PS1=<span class="String"><span class="String">'</span>${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\h:\w\$ <span class="String">'</span></span>
</pre></div><p><strong>Hervorhebung für Sudo</strong>
Obige Lösung funktioniert nur, wenn man sich als root anmeldet oder das "su" Kommando verwendet. Ich verwende jedoch meistens das Kommando "sudo -s". Sudo ruft dabei nicht die .bashrc des Root-Benutzers auf, sondern die des Benutzers, der sudo verwendet.
Deshalb habe ich zusätzlich meine eigene .bashrc so bearbeitet, dass der Benutzer farbig hervorgehoben wird, wenn es sich um Root handelt.
Dazu ersetzt man die oben erwähnte vierte Zeile durch folgenden Code:</p><div id='code_4'><pre class="active4d"><span class="line-numbers"> 1 </span> <span class="Keyword">if</span> [ <span class="String"><span class="String">`</span>id -u<span class="String">`</span></span> -eq <span class="String"><span class="String">"</span>0<span class="String">"</span></span> ]<span class="Operator">;</span> <span class="Keyword">then</span>
<span class="line-numbers"> 2 </span> PS1=<span class="String"><span class="String">'</span>${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[00m\]@\h:\w\$ <span class="String">'</span></span>
<span class="line-numbers"> 3 </span> <span class="Keyword">else</span>
<span class="line-numbers"> 4 </span> PS1=<span class="String"><span class="String">'</span>${debian_chroot:+($debian_chroot)}\u@\h:\w\$ <span class="String">'</span></span>
<span class="line-numbers"> 5 </span> <span class="Keyword">fi</span>
</pre></div><p>Jetzt wird auch bei der Verwendung von Sudo der Benutzer in einer Root Shell rot hervorgehoben.</p>
<p><strong>Link</strong>
Folgender Artikel beschreibt ganz gut wie man den Prompt unter Ubuntu anpassen kann: <a href="http://ubuntuforums.org/showthread.php?t=614743" class="ext">http://ubuntuforums.org/showthread.php?t=614743</a></p>André Hanaktag:a-hanak.de,2005:Post/12010-01-15T18:03:02Z2018-04-16T23:23:45ZSynchronisation mit SVN<p>Es gibt unzählige Möglichkeiten Verzeichnisse zu synchronisieren. Komplizierter wird es jedoch immer dann, wenn in beide Richtungen synchronisiert werden soll.
Die Lösung, die ich hier vorstelle arbeitet mit <a href="http://de.wikipedia.org/wiki/Subversion_(Software)" class="ext">Subversion (SVN)</a>, ist nahezu Betriebssystemunabhängig und bietet nebenbei auch noch die Möglichkeit alte Versionen seiner Dateien jederzeit wiederherstellen zu können.
Dieser Artikel soll keine fertig Anleitung sein, sondern vielmehr einen kleinen Einblick in das Thema geben. Über SVN selber gibt es bereits zahlreiche Anleitungen.</p>
<p><strong>Inhalt:</strong>
<ul>
<li> Über SVN
</li>
<li> Szenario
</li>
<li> Server
</li>
<li> Client
</li>
<li> Synchronisieren
</li>
<li> Vorteile / Nachteile</li>
</ul>
<strong>Über SVN</strong>
SVN oder auch Subversion ist eigentlich ein Werkzeug für Software Entwickler.
Auf einem Server wird in einem so genannten "Repository" der Inhalt eines Projektes (hier: der Inhalt des Ordners) gespeichert. Nun können sich beliebig viele Personen eine Kopie dieses Ordners auf ihrer Festplatte speichern. Diese nennt man Arbeitskopie. Werden Änderungen in diesen Kopien vorgenommen, so ist SVN in der Lage diese zu erkennen und wieder zum Server zu übertragen (Commit). Anders herum kann die Arbeitskopie jederzeit auf den neuesten Stand (des Servers) gebracht werden (Update).
Ganz wichtig ist auch, dass jede Änderung am Server gespeichert wird. Eine Anfrage nach folgendem Schema ist also kein Problem: "Zeige mir die Datei xyz, wie sie am 24.12.2008 aussah."</p>
<p>Was heißt das für uns?
SVN kann beliebig viele Kopien eines Ordners synchron halten. Jede Änderung an diesen Ordnern auf dem Server wird gespeichert.
Wir erhalten also nicht nur eine Synchronisation, sondern auch die Möglichkeit versehentliche Änderungen rückgängig zu machen.
Nachteil: Wir brauchen zusätzlich Platz auf dem Server. Bei vielen Änderungen kann das eine ganze Menge werden.</p>
<p><strong>Szenario</strong>
Sagen wir einmal wir wollen zwei Ordner "Dokumente" zwischen einem PC und einem Notebook (NB) synchron halten. Dazu benötigt man insgesamt 3 Kopien dieses Ordners:
Eine auf PC, eine auf NB und dann noch eine auf dem Server, auf den beide PCs zugreifen.
Ich werde hier folgendes Szenario beschreiben: Ein Server im Internet, dessen SVN Repository über Http(s) erreichbar ist.
<p class="center"><img src="/posts/images/svn-sync-szenario.png" alt=""></p></p>
<p><strong>Server</strong>
Es gibt viele Anleitungen für das Aufsetzen von SVN Servern im Internet. Es ergeben sich für unseren Anwendungsfall dabei keine Besonderheiten.
Was man erwähnen sollte: SVN kennt verschiedene Protokolle. Unter anderem http, https und ein eigenes. Für Server im Internet eignet sich https sicherlich gut.
Beispiel für eine Anleitung zum installieren eines SVN-Server mit Apache:
<a href="http://www.petanews.de/blog-news-developer/subversion-mit-apache-22/" class="ext">http://www.petanews.de/blog-news-developer/subversion-mit-apache-22/</a>
Achtung: Ich habe die Anleitung selber nicht getestet.</p>
<p><strong>Client</strong>
Prinzipiell kann man SVN sehr gut mit der Konsole bedienen. Viele Leute (auch ich) bevorzugen jedoch ein graphisches Programm.
Es gibt Clients für Windows, Linux, Mac OS X, Java, usw. Die Arbeitsweise ist immer identisch und die Bedienung meist ähnlich.
Hier eine Liste von Clients: <a href="http://subversion.tigris.org/links.html#clients" class="ext">http://subversion.tigris.org/links.html#clients</a></p>
<p>Zur Bedienung:
Es gibt 3 Aktionen, die für uns besonders interessant sind:<ul>
<li>Checkout: Überträgt den gesamten Inhalt des Repositories einmalig auf die Festplatte. Legt zudem ein paar Dateien an, die SVN benötigt.
</li>
<li>Update: Bringt die Arbeitskopie auf den Stand des Servers.
</li>
<li>Commit: Überträgt alle lokalen Änderungen an den Server.</li>
</ul>
Hinweis: Damit Änderungen besser nachvollziehbar sind, verlangt SVN z.B. bei Commit eine "Log-Nachricht". Für eine reine Verzeichnis-Synchronisation ist dies jedoch nicht so wichtig und kann auch leer gelassen werden.</p>
<p><strong>Synchronisieren</strong>
Zum Synchronisieren reichen unter Linux beispielsweise zwei einfache Befehle.</p><div id='code_1'><pre class="active4d"><span class="line-numbers"> 1 </span> cd /pfad/verzeichnis/
<span class="line-numbers"> 2 </span> svn update
<span class="line-numbers"> 3 </span> svn commit -m <span class="String"><span class="String">"</span>test<span class="String">"</span></span>
</pre></div><p>Dabei sollte man allerdings beachten, dass neu erstellte Ordner nicht automatisch mit übernommen werden.</p>
<p><strong>Vorteile(+) / Nachteile(-):</strong>
+ SVN ist sehr ausgereift und weit verbreitet.
+ Sehr Universell einstzbar (verschiedene Protokolle, Internet, LAN, ...)
+ SVN Clients sind für alle wichtigen Betriebssysteme verfügbar.
+ Auf einem Client wird nur eine URL und ein Benutzer+Passwort zur Konfiguration benötigt.
+ (z.B. bei WebDAV) Zugriff von überall aus der Welt über Webbrowser möglich.
+ Möglichkeit ältere Versionen einer Datei zu betrachten (-> Versionskontrolle).
- Grundlegende SVN Kenntnisse sinnvoll.
- SVN Server benötigt.</p><p>Es gibt unzählige Möglichkeiten Verzeichnisse zu synchronisieren. Komplizierter wird es jedoch immer dann, wenn in beide Richtungen synchronisiert werden soll.
Die Lösung, die ich hier vorstelle arbeitet mit <a href="http://de.wikipedia.org/wiki/Subversion_(Software)" class="ext">Subversion (SVN)</a>, ist nahezu Betriebssystemunabhängig und bietet nebenbei auch noch die Möglichkeit alte Versionen seiner Dateien jederzeit wiederherstellen zu können.
Dieser Artikel soll keine fertig Anleitung sein, sondern vielmehr einen kleinen Einblick in das Thema geben. Über SVN selber gibt es bereits zahlreiche Anleitungen.</p>
<p><strong>Inhalt:</strong>
<ul>
<li> Über SVN
</li>
<li> Szenario
</li>
<li> Server
</li>
<li> Client
</li>
<li> Synchronisieren
</li>
<li> Vorteile / Nachteile</li>
</ul>
<strong>Über SVN</strong>
SVN oder auch Subversion ist eigentlich ein Werkzeug für Software Entwickler.
Auf einem Server wird in einem so genannten "Repository" der Inhalt eines Projektes (hier: der Inhalt des Ordners) gespeichert. Nun können sich beliebig viele Personen eine Kopie dieses Ordners auf ihrer Festplatte speichern. Diese nennt man Arbeitskopie. Werden Änderungen in diesen Kopien vorgenommen, so ist SVN in der Lage diese zu erkennen und wieder zum Server zu übertragen (Commit). Anders herum kann die Arbeitskopie jederzeit auf den neuesten Stand (des Servers) gebracht werden (Update).
Ganz wichtig ist auch, dass jede Änderung am Server gespeichert wird. Eine Anfrage nach folgendem Schema ist also kein Problem: "Zeige mir die Datei xyz, wie sie am 24.12.2008 aussah."</p>
<p>Was heißt das für uns?
SVN kann beliebig viele Kopien eines Ordners synchron halten. Jede Änderung an diesen Ordnern auf dem Server wird gespeichert.
Wir erhalten also nicht nur eine Synchronisation, sondern auch die Möglichkeit versehentliche Änderungen rückgängig zu machen.
Nachteil: Wir brauchen zusätzlich Platz auf dem Server. Bei vielen Änderungen kann das eine ganze Menge werden.</p>
<p><strong>Szenario</strong>
Sagen wir einmal wir wollen zwei Ordner "Dokumente" zwischen einem PC und einem Notebook (NB) synchron halten. Dazu benötigt man insgesamt 3 Kopien dieses Ordners:
Eine auf PC, eine auf NB und dann noch eine auf dem Server, auf den beide PCs zugreifen.
Ich werde hier folgendes Szenario beschreiben: Ein Server im Internet, dessen SVN Repository über Http(s) erreichbar ist.
<p class="center"><img src="/posts/images/svn-sync-szenario.png" alt=""></p></p>
<p><strong>Server</strong>
Es gibt viele Anleitungen für das Aufsetzen von SVN Servern im Internet. Es ergeben sich für unseren Anwendungsfall dabei keine Besonderheiten.
Was man erwähnen sollte: SVN kennt verschiedene Protokolle. Unter anderem http, https und ein eigenes. Für Server im Internet eignet sich https sicherlich gut.
Beispiel für eine Anleitung zum installieren eines SVN-Server mit Apache:
<a href="http://www.petanews.de/blog-news-developer/subversion-mit-apache-22/" class="ext">http://www.petanews.de/blog-news-developer/subversion-mit-apache-22/</a>
Achtung: Ich habe die Anleitung selber nicht getestet.</p>
<p><strong>Client</strong>
Prinzipiell kann man SVN sehr gut mit der Konsole bedienen. Viele Leute (auch ich) bevorzugen jedoch ein graphisches Programm.
Es gibt Clients für Windows, Linux, Mac OS X, Java, usw. Die Arbeitsweise ist immer identisch und die Bedienung meist ähnlich.
Hier eine Liste von Clients: <a href="http://subversion.tigris.org/links.html#clients" class="ext">http://subversion.tigris.org/links.html#clients</a></p>
<p>Zur Bedienung:
Es gibt 3 Aktionen, die für uns besonders interessant sind:<ul>
<li>Checkout: Überträgt den gesamten Inhalt des Repositories einmalig auf die Festplatte. Legt zudem ein paar Dateien an, die SVN benötigt.
</li>
<li>Update: Bringt die Arbeitskopie auf den Stand des Servers.
</li>
<li>Commit: Überträgt alle lokalen Änderungen an den Server.</li>
</ul>
Hinweis: Damit Änderungen besser nachvollziehbar sind, verlangt SVN z.B. bei Commit eine "Log-Nachricht". Für eine reine Verzeichnis-Synchronisation ist dies jedoch nicht so wichtig und kann auch leer gelassen werden.</p>
<p><strong>Synchronisieren</strong>
Zum Synchronisieren reichen unter Linux beispielsweise zwei einfache Befehle.</p><div id='code_1'><pre class="active4d"><span class="line-numbers"> 1 </span> cd /pfad/verzeichnis/
<span class="line-numbers"> 2 </span> svn update
<span class="line-numbers"> 3 </span> svn commit -m <span class="String"><span class="String">"</span>test<span class="String">"</span></span>
</pre></div><p>Dabei sollte man allerdings beachten, dass neu erstellte Ordner nicht automatisch mit übernommen werden.</p>
<p><strong>Vorteile(+) / Nachteile(-):</strong>
+ SVN ist sehr ausgereift und weit verbreitet.
+ Sehr Universell einstzbar (verschiedene Protokolle, Internet, LAN, ...)
+ SVN Clients sind für alle wichtigen Betriebssysteme verfügbar.
+ Auf einem Client wird nur eine URL und ein Benutzer+Passwort zur Konfiguration benötigt.
+ (z.B. bei WebDAV) Zugriff von überall aus der Welt über Webbrowser möglich.
+ Möglichkeit ältere Versionen einer Datei zu betrachten (-> Versionskontrolle).
- Grundlegende SVN Kenntnisse sinnvoll.
- SVN Server benötigt.</p>André Hanak