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

    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.

    (mehr …)
  • 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