Strong Name für eine .NET Applikation erzeugen

Unter .NET kann man Assemblies mit einem „Strong Name“ versehen. Dieser sorgt dafür das dass Assembly eindeutig identifiziert werden kann. Möchte man einen solchen erstellen so benötigt man zuerst ein Schlüsselpaar welches mit dem „Strong Name Utility“ angelegt wird:

sn –k keypair.snk

Das Tool befindet sich dabei im Windows SDK Ordner (z.B. C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A) wobei sich die Version des SDKs durchaus unterscheiden kann. Die erzeugte Snk-Datei wird dabei dem Projekt hinzugefügt. Anschließend stellt man in den Projekteinstellungen unter „Signing“ die entsprechende Datei ein. In diesem Tab ist es auch möglich eine neue Schlüsseldatei zu generieren, so das man für den Schritt der Erzeugung nicht auf das „Strong Name Utility“ angewiesen ist.

Die Projektoptionen im Visual Studio

Die Projektoptionen im Visual Studio

Bei der Signierung ist es wichtig darauf zu achten, das alle Bibliotheken ebenfalls mit einem Strong Name versehen sind, sonst verweigert das Studio die Signierung der Anwendung. Möchte man aus dem signierten Assembly den öffentlichen Schlüssel extrahieren, so kommt wieder das „Strong Name Utility“ zur Anwendung:

sn -e Assembly.exe public.pk

Das Schlüsselpaar welches man erzeugt hat, kann man dabei für alle eigenen Anwendungen benutzen. Es ist nicht nötig, für jede Anwendung ein eigenes Schlüsselpaar zu erzeugen, da sich der „SimpleName“ bei jedem Assembly unterscheidet.

Weitere Informationen gibt es unter:
http://msdn.microsoft.com/en-us/magazine/cc163583.aspx
http://msdn.microsoft.com/en-us/library/h4fa028b%28v=vs.80%29.aspx

Anschlüsse von Realtek Soundkarten umkonfigurieren

In vielen PCs sind Onboardsoundkarten mit einem Realtek Chipsatz verbaut. Normalerweise besitzen diese einen Line In, einen Mikrofoneingang und einen Anschluss für die Audioausgabe. Möchte man nun einen der Eingänge anders belegen, so wird das unter Windows 7 meist problematisch.

Der Realtek HD Audio-Manager

Der Realtek HD Audio-Manager

Das liegt allerdings nicht daran, das es nicht gehen würde, aber meist fehlt der „Realtek HD Audio-Manager“ welcher dafür sorgt das man die Anschlüsse konfigurieren kann. Wenn man diesen herunterlädt (in den Treibern enthalten) und anschließend etwas an die Eingänge steckt, so wird man gefragt wie der Anschluss (Eingang, Ausgang) konfiguriert werden soll.

Git Server für mehrere Benutzer einrichten

Wie man Git auf einem Ubuntuserver aufsetzt hatte ich vor einiger Zeit in einem Artikel beschrieben. Nachteil der vorgestellten Methode ist, das sie sich nur für einen Nutzer eignet. Natürlich kann man mit dieser Methode auch mehrere Nutzer zu dem Repositories verbinden, hat damit aber keine Möglichkeit mehr Zugriffsberechtigungen für die Repositories zu setzen.

Als Lösung für das Problem wird Gitolite für die Nutzer und Rechteverwaltung genutzt. Im ersten Schritt werden auf dem Server die notwendigen Pakete installiert:

sudo apt-get install git openssh-server perl

Als nächster Schritt wird der Nutzer angelegt, in welchem Gitolite läuft und in diesen gewechselt:

sudo useradd -m git
sudo su git

Danach geht es auch schon an die Installation von Gitolite:

cd ~
git clone git://github.com/sitaramc/gitolite
mkdir bin
cd gitolite
./install -ln

Anschließend muss der öffentliche SSH Schlüssel von dem Rechner mit welchem auf das System zugriffen werden soll in den Home Ordner des „git“ Nutzers kopiert werden. Anschließend kann das Setup abgeschlossen werden:

cd ~/bin
./gitolite setup -pk $HOME/seeseekey.pub

Damit ist das Setup abgeschlossen und es kann an die Konfiguration gehen. Dazu wird vom Rechner dessen Public Key beim Setup benutzt wurde das entsprechende administrative Repository geklont:

git clone git@192.168.1.128:gitolite-admin

Die Dateistruktur des Repositories sieht dabei wie folgt aus:

conf
  gitolite.conf
keydir
  seeseekey.pub

In dem Verzeichnis „keydir“ sind die SSH Schlüssel enthalten. Um einen Nutzer hinzuzufügen reicht es einfach einen neuen öffentlichen Schlüssel in das Verzeichnis zu legen und das ganze ins Git Repository einzubringen. Die eigentliche Konfiguration der Repositories erfolgt in der „gitolite.conf“ Datei. Diese sieht nach der Erzeugung so aus:

repo gitolite-admin
    RW+     =   seeseekey

repo testing
    RW+     =        @all

Das bedeutet das es zwei Repositores gibt, eines trägt den Namen „gitolite-admin“ und dient der Verwaltung. Das zweite Repository ist „testing“ auf das alle Nutzer zugreifen dürfen. Benötigt man nun ein neues Repository, so fügt man einen neuen „repo“ Abschnitt mit dem Namen und den entsprechenden Rechten hinzu. Sobald das ganze commitet und gepusht wurde, legt Gitolite das neue Repository an. Wenn man bei den Schlüsseln mehrere SSH Schlüssel pro Nutzer wünscht, so legt man dafür am besten eine Verzeichnisstruktur an:

keydir
  seeseekey
    rechner1
      seeseekey.pub
    rechner2
      seeseekey.pub

Möchte man ein Repository löschen so entfernt man es aus der „gitolite.conf“ und löscht es anschließend auch vom Server. Damit hat man eine Lösung für Git Server mit mehren Nutzern und und entsprechender Verwaltung.

Den Raspberry Pi als Druckserver benutzen

Wer einen Drucker ohne Netzwerkanschluss besitzt, kann ihn mit Hilfe eines Raspberry Pi zu einem Netzwerkdrücker umrüsten. Dazu werden im ersten Schritt die notwendigen Pakete installiert:

sudo apt-get install avahi-daemon cups cups-pdf

Nach der Installation geht es an die Konfiguration. Dazu wird die „cupsd.conf“ bearbeitet:

sudo nano /etc/cups/cupsd.conf

Den Sektionen „<Location />“, „<Location /admin>“ und „<Location /admin/conf>“ wird dabei die Zeile:

Allow @Local

hinzugefügt. Daneben sollte noch die Zeile:

Listen <IP Adresse>:631

hinzugefügt werden. Das sorgt dafür das auf dem passenden Interface gehorcht wird. Danach geben wir in der Konsole folgendes ein:

sudo adduser pi lpadmin
sudo service cups restart

Damit wird der Nutzer „pi“ der Gruppe der Nutzer hinzugefügt welche Einstellungen vornehmen dürfen. Außerdem wird der CUPS Service neugestartet, so das die Änderungen in der Konfigurationsdatei wirksam werden. Nun kann sich über die URL:

https://<IP Adresse>:631

mit dem Webinterface von CUPS verbunden werden.

Das CUPS Webinterface

Das CUPS Webinterface

Im Webinterface wird nun unter dem Tab „Verwaltung“ der Punkt „Freigeben von Druckern welche mit diesem System verbunden sind“ aktiviert. Bestätigt wird das ganze mit den Zugangsdaten des Nutzers „pi“. Abschließend klickt man auf den Button „Verfügbare Drucker auflisten“ und fügt die angeschlossenen Drucker hinzu und gibt ihn frei. Dazu muss das passende Modell ausgesucht und bestätigt werden.

Anschließend kann man den Drucker in seinem Betriebssystem hinzufügen und über den Raspberry Pi drucken. Sollte wieder erwarten kein Druck stattfinden, so liegt das meist am falsch gewählten Druckertyp. Mit der beschriebenen Konfiguration lässt sich auch von iOS Geräten mittels AirPrint druchen.

Verschlüsslungsstatus von Bitlocker ermitteln

Wenn man auf einem Windows System die Bitlockerverschlüsslung aktiviert, so öffnet sich ein Fenster in welchem der aktuelle Status angezeigt wird. Bitlocker verschlüsselt dabei auch nach einem Neustart und ähnlichen Unterbrechungen weiter. Allerdings sieht man dabei nicht mehr den Fortschritt, da das System das Fenster nur beim Aktivieren der Verschlüsslung anzeigt. Um diese Information trotzdem abzufragen gibt man auf der Konsole:

manage-bde -status

ein. Die Ausgabe zeigt dann wie es um die Verschlüsslung steht:

Volume "C:" [System]
[Betriebssystemvolume]

    Größe:                    4492,21 GB
    BitLocker-Version:        Windows 7
    Konvertierungsstatus:     Verschlüsselung wird durchgeführt
    Verschlüsselt (Prozent):  44 %
    Verschlüsselungsmethode:  AES 128 mit Diffuser
    Schutzstatus:             Der Schutz ist deaktiviert.
    Sperrungsstatus:          Entsperrt
    ID-Feld: Kein

Wichtig ist dabei, das die entsprechende Konsole als Administrator gestartet wurde, sonst schlägt das Kommando fehl.