testssl.sh

Einen Server auf seine SSL-Fähigkeiten zu überprüfen ist für den Laien nicht ohne weiteres möglich. Durch das Bash-Skript testssl.sh sieht dies nun anders aus.

testssl.sh in Aktion

testssl.sh in Aktion

Das freie, unter der GPL2 lizenzierte Skript, dient dazu die Sicherheit der SSL-Implementation eines entfernten Servers zu testen. Die Syntax für den Test ist dabei einfach gehalten:

./testssl.sh example.com

Daneben verfügt „testssl.sh“ über weitere Optionen, wie man der Dokumentation entnehmen kann. Dem Autor des Skriptes kann auf Twitter gefolgt werden.

Skripte unter Linux installieren

Manchmal hat man ein Skript geschrieben welches man systemweit aufrufen möchte. Dazu muss dieses natürlich „installiert“ werden. Genaugenommen handelt es sich bei der Installation nur um eine Kopie an den richtigen Ort im System. In diesem Fall ist das der Ordner „/usr/local/bin/“. Allerdings wird für ein solche Operation nicht „cp“ genutzt. Stattdessen wird dies mittels „install“ erledigt:

sudo install skript.sh /usr/local/bin/skript.sh

Damit wird das Skript in den entsprechenden Ordner kopiert. Daneben werden die Dateirechte und Attribute angepasst. Anschließend kann das Skript von allen Nutzern systemweit genutzt werden.

Weitere Informationen gibt es unter:
https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Backup mittels rsync

Mittels „rsync“ ein Backup zu erstellen, ist für den normalen Nutzer unter Umständen etwas schwierig. Wesentlich vereinfacht wird der Prozess von dem Skript „rsync-time-backup“. Dieses unter einer MIT-Lizenz stehende Skript funktioniert dabei unter Linux und Mac OS X. Die Installation besteht dabei aus dem klonen des entsprechenden Git Repositories auf den eigenen Rechner:

git clone https://github.com/laurent22/rsync-time-backup

Genutzt wird das ganze nach dem Schema:

./rsync_tmbackup.sh <quelle> <ziel> [ausgeschlossene Dateien als Pattern]

Das Skript legt dabei für jedes Backup ein Verzeichnis mit dem Datum als Namen an. Dateien welche bereits in einem vorherigen Backup vorhanden und identisch sind, werden dabei per Hardlink verknüpft. Damit belegen sie keinen zusätzlichen Speicherplatz. Das Wiederherstellen von Daten ist bei diesem Backup sehr einfach. Es reicht den entsprechenden Ordner wieder zum Quellverzeichnis zu kopieren. Hierfür werden keine zusätzlichen Tools benötigt. Zu finden ist das Skript auf GitHub.

Verzeichnis von einem Git Repository in ein anderes verschieben

Unter Git möchte man manchmal ein Verzeichnis von einem Repository zu einem anderen verschieben. Natürlich soll dabei die Revisionsgeschichte nicht verloren gehen. In diesem Fall hilft folgendes Bashskript:

#!/bin/sh
# moves a folder from one git repository to another
# moveFolder <absolute repository one path> <repository one folder> <absolute repository two path>

# prepare repository one
cd $1
git clean -f -d -x
git checkout -b tmpBranch
git filter-branch --subdirectory-filter $2 HEAD
mkdir $2
mv * $2
git add .
git commit -a -m "Move files into folder"

#import in repository two
cd $3
git remote add repositoryOne $1
git pull repositoryOne tmpBranch
git remote rm repositoryOne

#cleanup
cd $1
git checkout master
git branch -D tmpBranch

#remove folder with history from repository one
cd $1
git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch $2" HEAD

Genutzt wird das Skript dabei wie folgt:

./moveFolder /absolute/path/to/repo/one folderFromRepoOne /absolute/path/to/repo/two

Nachdem das Verzeichnis in das neue Repository mitsamt der Revisionsgeschichte übertragen wurde, wird es aus dem alten Repository entfernt. Das Skript funktioniert dabei unter Windows, Linux und Mac OS X. Die jeweils aktuellste Version ist auf GitHub zu finden.

Firefox Sync App in ownCloud rückstandslos entfernen

In einem meiner letzten Artikel gibt es darum, wie man Firefox Sync in Verbindung mit ownCloud nutzt. Augenscheinlich gibt es im Zusammenhang damit ein Problem, das dass ganze nach dem Neustart von Firefox nicht mehr richtig funktioniert. Natürlich kann man die entsprechende App in ownCloud deaktivieren, allerdings bleiben dabei noch einige Einträge in der Datenbank erhalten. Mit diesem Skript können diese Einträge entfernt werden:

<?php
//Configuration
$dbServer = "localhost";
$dbDatabase = "owncloud";
$dbUsername = "user";
$dbPassword = "secret";

//Set up connection
$mySQLConnection = mysql_connect($dbServer, $dbUsername, $dbPassword) or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch!");
mysql_select_db($dbDatabase) or die ("Die Datenbank existiert nicht.");

//Cleanup ownCloud Tables
mysql_query("DELETE FROM `$dbDatabase`.`oc_appconfig` WHERE `oc_appconfig`.`appid` = 'core' AND `oc_appconfig`.`configkey` = 'remote_mozilla_sync' AND `oc_appconfig`.`configvalue` = 'mozilla_sync/appinfo/remote.php'");

mysql_query("DELETE FROM `$dbDatabase`.`oc_appconfig` WHERE `oc_appconfig`.`appid` = 'mozilla_sync' AND `oc_appconfig`.`configkey` = 'enabled' AND `oc_appconfig`.`configvalue` = 'no'");
mysql_query("DELETE FROM `$dbDatabase`.`oc_appconfig` WHERE `oc_appconfig`.`appid` = 'mozilla_sync' AND `oc_appconfig`.`configkey` = 'installed_version' AND `oc_appconfig`.`configvalue` = '1.0'");
mysql_query("DELETE FROM `$dbDatabase`.`oc_appconfig` WHERE `oc_appconfig`.`appid` = 'mozilla_sync' AND `oc_appconfig`.`configkey` = 'types' AND `oc_appconfig`.`configvalue` = ''");

//Drop tables
mysql_query("DROP TABLE `oc_mozilla_sync_collections`, `oc_mozilla_sync_users`, `oc_mozilla_sync_wbo`;");

//Close connection
mysql_close($mySQLConnection);
?>

Zu finden ist das Skript auf GitHub. Es entfernt dabei die Tabellen „oc_mozilla_sync_collections“, „oc_mozilla_sync_users“ und „oc_mozilla_sync_wbo“. Daneben wird die Tabelle „oc_appconfig“ um die Einträge der App bereinigt.