Archiv der Kategorie: OSS

Passbolt: Benutzer kann nicht angelegt werden, Fehler 400

Seit einiger Zeit betreibe ich zwei Passbolt-Instanzen zur sicheren und dennoch praktischen Verwaltung von Passwörtern. Der offizielle Docker-Stack funktioniert ansich einwandfrei, jedoch muss mir in den Anfängen mit Passbolt ein Fehler unterlaufen sein, bei dem ich ein oder zwei Kommandos über die Kommandozeile mit dem Benutzer „root“ statt „www-data“ ausführte.

Das führte dann dazu, dass /var/lib/passbolt/tmp/ und darin enthaltene Dateien und Unterverzeichnisse mit falschen Berechtigungen angelegt wurden, sodass im normalen Betrieb der Benutzer „www-data“ keine Schreibrechte hatte.

Das äußerte sich auch gar nicht so offensichtlich: Beim anlegen eines neuen Benutzers beispielsweise erhielt ich unvermittelt einen Fehler 400, der nicht klar auf ein Berechtigungsproblem verwies.

Abhilfte schaffte letztlich im Docker-Container:

chown -R www-data:www-data /var/lib/passbolt/tmp/
chmod -R 775 $(find /var/lib/passbolt/tmp/ -type d)
chmod -R 664 $(find /var/lib/passbolt/tmp/ -type f)

Einfaches Skript um mit mdb-tools eine MS Access-Datenbank in SQLite3 umzuwandeln

Hin und wieder stößt man auf Anwendungsfälle in denen Applikationen für Nischenprodukte einen vor merkwürdige Aufgaben stellen. So zum Beispiel ein im deutschen Kanurennsport häufig für die Regattaplanung genutztes Tool namens „GTS Regatta“. Im Grunde eine MS Access-basierte Anwendung mit zahlreichen Formularen und Funktionen rund um das Thema Kanuregatta.

Um die Daten praktisch in PHP-Anwendungen nutzen zu können, kann ein entsprechender ODBC-Treiber genutzt und direkt mit der Access-Datenbank gearbeitet werden. Dies ist, möchte man mit einem Linux-System arbeiten, etwas aufwändig und je nach ODBC-Treiber auch kostspielig.

Eine Alternative stellt die Konvertierung nach SQLite oder einer anderen Datenbank dar. Um dies mit kostenlosen Tools unter Linux möglichst leicht zu gestalten, bietet sich das folgende Skript an:

#!/usr/bin/env bash
# Usage: mdb-export.sh database.mdb/.accdb

fullfilename=$1
filename=$(basename "$fullfilename")
dbname=${filename%.*}

echo "Export schema"
mdb-schema "$fullfilename" sqlite > "$dbname.sql"

IFS=$'\n'
for table in $(mdb-tables -1 "$fullfilename"); do
    echo "Export table $table"
    mdb-export --insert=sqlite "$fullfilename" "$table" >> "$dbname.sql"
done

echo "Convert to sqlite"
sqlite3 "$dbname.sqlite3" < "$dbname.sql"

echo "Delete working data"
rm "$dbname.sql"

nginx-rtmp mit Standby-Bild wenn kein Publisher verbunden ist

Im Beitrag „Lokal von OBS zu OBS streamen mittels nginx-basiertem RTMP-Server“ zeigte ich, wie man zwischen OBS-Instanzen in einem Netzwerk streamen kann. Das ursprüngliche Streaming-Projekt ist längst abgeschlossen, jedoch bin ich retrospektiv nochmal alle Verbesserungsvorschläge und -möglichkeiten durchgegangen.

Hierbei wurde auch klar, dass ein direkter Stream über eine teils instabile Verbindung insbesondere beim Streaming zu YouTube nicht unproblematisch ist. Um beim Streaming zu YouTube zu vermeiden, dass der Stream entgültig und unwiederbringlich beendet wird (beispielsweise passiert das durch Beendigung des Streams in OBS oder bei einem Verbindungsabbruch, wenn der Stream nicht innerhalb kurzer Zeit wieder gestartet wird) empfiehlt es sich, einen Streaming-Proxy zu verwenden.

nginx-rtmp mit Standby-Bild wenn kein Publisher verbunden ist weiterlesen

Details zu Wifi-Netzwerken auf der Konsole: iwlist/iwconfig

Kürzlich hatte ich die Chance einen AC-WLAN Stick von ASUS zu testen. Sehr futuristisches Teil, nur mit den Linux-Treibern gibts noch einige Probleme. Ein manuelles kompilieren (bzw. Setup für DKMS) war notwendig.

Nachdem der Stick installiert war wollte ich natürlich sehen, wie der Empfang zu den umliegenden Netzen war. Von der Konsole aus, versteht sich. Naheliegend war daher der iwlist-Befehl. Auch der iwconfig-Befehl ist recht praktisch (sofern es um ein spezifisches, verbundenes Netz geht).

host:~/git/rtl8812AU_8821AU_linux$ iwlist wlan6 scan
wlan6 Scan completed :
 Cell 01 - Address: 00:1F:F3:xx:xx:xx
 ESSID:"TESTWLAN"
 Protocol:IEEE 802.11bgn
 Mode:Master
 Frequency:2.437 GHz (Channel 6)
 Encryption key:on
 Bit Rates:130 Mb/s
 Extra:rsn_ie=30140100000fac040100000fac040100000fac020000
 IE: IEEE 802.11i/WPA2 Version 1
 Group Cipher : CCMP
 Pairwise Ciphers (1) : CCMP
 Authentication Suites (1) : PSK
 Quality=100/100 Signal level=46/100 
 Cell 02 - Address: 06:75:0E:xx:xx:xx
 ESSID:""
 Protocol:IEEE 802.11bgn
 Mode:Master
 Frequency:2.462 GHz (Channel 11)
 Encryption key:on
 Bit Rates:144 Mb/s
 Extra:rsn_ie=30140100000fac040100000fac040100000fac010100
 IE: IEEE 802.11i/WPA2 Version 1
 Group Cipher : CCMP
 Pairwise Ciphers (1) : CCMP
 Authentication Suites (1) : 802.1x
 Preauthentication Supported
 Quality=0/100 Signal level=44/100 
 Cell 03 - Address: B4:75:0E:xx:xx:xx
 ESSID:"OTHERNET"
 Protocol:IEEE 802.11AC
 Mode:Master
 Frequency:5.18 GHz (Channel 36)
 Encryption key:on
 Bit Rates:867 Mb/s
 Extra:rsn_ie=30140100000fac040100000fac040100000fac020100
 IE: IEEE 802.11i/WPA2 Version 1
 Group Cipher : CCMP
 Pairwise Ciphers (1) : CCMP
 Authentication Suites (1) : PSK
 Preauthentication Supported
 Quality=0/100 Signal level=60/100 


host:~/git/rtl8812AU_8821AU_linux$ watch -n1 | iwconfig
vboxnet0 no wireless extensions.

wlan6 IEEE 802.11bgn ESSID:"TESTWLAN" Nickname:"<WIFI@REALTEK>"
 Mode:Managed Frequency:2.437 GHz Access Point: 00:1F:F3:xx:xx:xx 
 Bit Rate:130 Mb/s Sensitivity:0/0 
 Retry:off RTS thr:off Fragment thr:off
 Power Management:off
 Link Quality=100/100 Signal level=47/100 Noise level=0/100
 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
 Tx excessive retries:0 Invalid misc:0 Missed beacon:0

 

 

Brother DCP-T500W Netzwerk-Scanner unter Fedora 27

Um mithilfe des oben genannten Gerätes und Fedora, in meinem Fall in Version 27, über das Netzwerk zu scannen, bedarf es des „brscan“-Tools von Brother, mit dem der Netzwerk-Scanner zum System hinzugefügt wird.

Mit den folgenden drei Schritten lässt sich so der Scanner einfach konfigurieren und wird dann von Scanning-Applikationen wie xsane als „scanner:net1;dev0“ (oder ähnlich) erkannt.

Download:

wget http://download.brother.com/welcome/dlf006648/brscan4-0.4.4-4.x86_64.rpm

Installation:

sudo dnf install brscan4-0.4.4-4.x86_64.rpm

Scanner hinzufügen:

brsaneconfig4 -a name=scanner model="DCP-T500W" ip=192.168.000.192

Optional – am System existierende Drucker anzeigen:

scanimage -L

Seither habe ich bereits einige Dutzend Seiten gescannt. Soweit ist dies ein Musterbeispiel für Linux-Unterstützung von Peripherie. Wenn nun noch der Quelltext des brscan-Tools verfügbar wäre …

Images and Exif „orientation“ vs native „rotation“

The Exif orientation-setting and applications which are unable to interpret it, are annoying. The following two steps show how to remove the orientation-setting and rotate the specified images natively.

Remove Exif orientation (originals are kept):

exiftool -Orientation= /path/to/images/*.jpg

Rotate the images by 90 degrees (originals are kept):

for file in /path/to/images/*.jpg; do convert "$file" -rotate 90 "${file%.JPG}"_rotated.JPG; done