Mittwoch, September 16, 2020

Fotos anhand der GeoTags auf einer Weltkarte (Google Earth) anordnen

Das Perl Modul und Programm ExifTool von Phil Harvey, bietet die Möglichkeit, Metadaten in einer beliebigen Anzahl von Formaten auszugeben. Z.B. auch als GPS-Trackdatei, die dann nach Google Earth importiert werden kann. Super fürs Fotoalbum, mit all den Urlaubsfotos (Wenn Sie immer schön GPS an hatten).
Das Google Earth installiert ist, setze ich voraus.

google_earth-2020-09-16-19-38-06.png

ExifTool installieren

Das Programm exiftool(1p) ist in Debian GNU/Linux enthalten und kann über die Paketverwaltung wie folgt installiert werden:

apt install libimage-exiftool-perl

Ansonsten muss es aus dem CPAN installiert werden:

cpan Image::ExifTool # installiert nach /usr/local

GPX- und KML-Datei erstellen

Um nun aus einer Reihe von Fotos mit GeoTags eine GPX- und eine KML-Datei zu erstellen, müssen entsprechende Schablonen mit der Option -p an exiftool(1p) übergebenen werden:

# Creating a GPX track log
exiftool -p ~/Downloads/gpx.fmt -ee -r ~/Bilder/ ~/Videos/ > ~/out.gpx
# Creating a Google Earth KML file
exiftool -p ~/Downloads/kml.fmt -ee -r ~/Bilder/ ~/Videos/ > ~/out.kml

Die Schablonen finden Sie für GPX hier und für KML hier.
Speichern Sie diese beiden Dateien am besten unter ~/Downloads/gpx.fmt und ~/Downloads/kml.fmt ab und führen Sie dann die obigen Kommandos aus./

Die zwei Beispiele, arbeiten die Verzeichnisse ~/Bilder/ und ~/Videos/ rekursiv ab. Aber es können stattdessen auch einzelne Dateien, oder Verzeichnisse und Dateien gemischt angegeben werden.

Mit Google Earth öffnen

Es sollten die Dateien ~/out.gpx bzw. ~/out.kml erzeugt worden sein.
Letztere können Sie mit Google Earth öffnen:

google-earth-pro ~/out.kml

Mein Tipp: Geben Sie Bilder, Videos und die out.kml mit absoluter Pfadangabe an. Dann sollten diese von Google Earth auch immer gefunden werden (Ansonsten halten Sie sich an die Tipps aus den Schablonenbeschreibungen).

In diesem Beispiel habe ich ausschließlich im Home-Verzeichnis als aktuelles Arbeitsverzeichnis (working directory) gearbeitet. So sollte die out.kml, auch korrekt über das Kontextmenü, mit Google Earth, aus dem Dateimanager heraus geöffnet werden können.

PS: ExifTool kam hier mit ~20000 Dateien klar!

Quellen und Weiterführendes

Sonntag, August 16, 2020

NetworkManager als WLAN-Sniffer: Liste der benachbarten Access Points erhalten

Um eine Liste der benachbarten Funknetzwerke (Access Points), mit den Werten für WLAN-Name (SSID), Kanal (Channel), Signalstärke, Verschlüsselungsart usw. zu erhalten, kann man folgendes Kommando nutzen:

nmcli device wifi list –rescan yes

Anders als z.B. iwlist(8) muss nmcli(1) nicht explizit als UID 0/root ausgeführt werden, um einen Rescan durchzuführen.

Für Skripte kennt nmcli(1) den Schalter -g, –get-values. Dieser soll verwendet werden, um die Werte bestimmter Felder zu erhalten. Es ist im Grunde eine Kombination aus –mode tabular, –terse und –fields und eine bequeme Möglichkeit, Werte für bestimmte Felder abzurufen.

nmcli –get-values IN-USE,BSSID,SSID,CHAN,SIGNAL,SECURITY device wifi list –rescan yes

PS: Dies ist auch in nmcli-examples(7) beschrieben.

Freitag, August 9, 2019

NAS mit Samba: Verzeichnis im Netzwerk freigeben

Ein Verzeichnis mit dem Windows AD und SMB/CIFS Dateiserver für UNIX über das Netzwerk freigeben und Benutzern sowie Gästen Lese- und Schreibzugriff gewähren.

Dieses Setup für ein NAS mit Samba erlaubt neben Benutzern, auch Gästen Lese- und Schreibzugriff. So kann jeder auf das Netzlaufwerk zugreifen! Durch das Stiky-Bit ist jedoch sichergestellt, das niemand die Dateien eines anderen löschen oder überschreiben kann.

Verzeichnis anlegen und Samba konfigurieren

Das Verzeichnis für das NAS legt man am besten unterhalb von /srv an. Dieses Verzeichnis enthält betriebsspezifische Daten, die vom System bereitgestellt werden und folgt dem FHS.

# neues Verzeichnis erstellen
mkdir -p /srv/nas
# Benutzer, Gruppe, Dateirechte und StickyBit setzen
chown root:staff /srv/nas
chmod a+rwXt /srv/nas

Im Verzeichnis /srv/nas können nun alle Benutzer unter ihrer UID Dateien erstellen, ändern und löschen. Die Dateien anderer Benutzer können nur geöffnet, nicht aber geändert oder gelöscht werden. Will man dies erlauben, muss man mit Benutzergruppen (GID) arbeiten.

Um das Verzeichnis freizugeben, muss die Konfiguration smb.conf(5) um folgende Sektion erweitert werden:

cat <<! >>/etc/samba/smb.conf
[NAS]
    comment=NAS
    path=/srv/nas
    public = yes
    writeable = yes
    guest ok = yes
    guest account = nobody
    create mask = 0665
    directory mask = 0775
!

Mit testparm(1) kann die Konfigurationsdatei auf Syntaktische Korrektheit überprüft werden.

testparm

Benutzern den Zugriff erlauben

Damit Benutzer unter ihrer ID Dateien im NAS und auch im Benutzerverzeichnis ablegen können, muss für jeden ein Passwort in der Benutzerdatenbank von Samba einrichten sein. Ohne Passwort können Benutzer weder lesend noch schreibend auf ihr Benutzerverzeichnis zugreifen. Es besteht allerdings auch die Möglichkeit, Benutzer ohne Passwort zu aktiveren. Linux und Samba verwenden unterschiedliche Passwörter.

Zum Erstellen des Passworts in der Samba-Benutzerdatenbank smbpasswd(5) kann entweder pdbedit(8) oder smbpasswd(8) verwendet werden.

Hinweis: Will man $HOME nicht freigeben, empfiehlt es sich die Sektion [homes] in der smb.conf(5) auszukommentieren.

Passwort anlegen

Das Passwort für einen Benutzer wird mit smbpasswd -a <username> angelegt.

Wird smbpasswd(8) ohne Parameter aufgerufen, kann das Passwort des aktuellen Benutzers geändert werden.

Das anlegen des Passwords kann für neue Benutzerkonten auch während der Einrichtung passieren. Dazu legt man die Datei /usr/local/sbin/adduser.local an. Wenn die Datei existiert, wird sie nach der Einrichtung des Benutzerkontos ausgeführt, um lokale Einstellungen vorzunehmen.

cat <<! >/usr/local/sbin/adduser.local
#!/bin/sh
# An adduser.local werden die folgenden Argumente übergeben:
# Benutzername, UID, GID und Home-Verzeichnis.
    
user=”$1”
uid=”$2”
gid=”$3”
home=”$4”
# add new users to the local smbpasswd(5) file
smbpasswd -a ”$user”
    
# Make sure that the script will ”exit 0”
true
!
chmod -x /usr/local/sbin/adduser.local

Passwort entfernen

Um ein Benutzerkonto beim entfernen auch aus der Samba-Benutzerdatenbank auszutragen, kann die /usr/local/sbin/deluser.local analog zu adduser.local angelegt werden.

cat <<! >/usr/local/sbin/deluser.local 
#!/bin/sh
# An deluser.local werden die folgenden Argumente übergeben:
# Benutzername, UID, GID und Home-Verzeichnis.
    
user=”$1”
uid=”$2”
gid=”$3”
home=”$4”
# delete user from the local smbpasswd(5) file
smbpasswd -x ”$user”
# Make sure that the script will ”exit 0”
true
!
chmod -x /usr/local/sbin/deluser.local

Zur Verwaltung der Samba-Benutzerdatenbank bietet sich pdbedit(8) an. Damit kann u.a. abgefragt werden, für welche Benutzer in der Samba-Benutzerdatenbank ein Passwort vergeben wurde.

pdbedit -L

Netzlaufwerke einbinden

Unter Linux (GNOME), Microsoft Windows usw. sollte das NAS als Netzwerkfreigabe gefunden werden.

Für einen Datentransfer über Samba, wird eine Pfadangabe bzw. URI der folgenden Form benutzt:

smb://{hostname|ip}/NAS

Mailingliste abonnieren

Um Ankündigungen, wie z.B. Benachrichtigungen über neue Versionen und Bugs zu erfahren, sollte man zusätzlich die Samba Mailingliste abonnieren. Die Adresse ist unter https://lists.samba.org zu finden und es sollte mindestens samba-announce abonniert werden.

NAS mit SFTP

Ist SSH bzw. das Paket openssh-sftp-server installiert, kann auch via SSH auf das Benutzerverzeichnis zugegriffen werden. Und viele Dateimanager unterstützen das SSH-Protokoll SFTP.

Für einen Datentransfer über SSH an einem entfernten Rechner, benutzt man eine URI der Form:

sftp://[username@]{hostname|IP}[:port]/path/to/share

Alternativ können statt des Authority-Teil, auch die Aliasnamen aus ssh_config(5) verwendet werden.

Donnerstag, Juni 30, 2016

Webentwicklung/Webdesign; HTML: Telefonnummern verlinken

Ganz ähnlich wie E-Mail-Adressen mit dem Schema (scheme) mailto angegebenen werden können und der Link i.d.R. den Mail-Client öffnet, um die E-Mail zu verfassen. Können auch Telefonnummern verlinkt werden (siehe RFC 3966).

Dazu muss das Schema tel genutzt werden. Beispiel:

Telefon: <a href=”tel:+491631737743”>+491631737743</a>

Am Computer weniger sinnvoll/nützlich, trumpft so ein Link am Smartphone allerdings richtig auf!

Freitag, Oktober 30, 2015

Autorestart: Eine systemd user-unit anlegen/erstellen/erzeugen

Programme wie Mail-Client und IM startet man i.d.R. über den Autostart der Desktopumgebung, damit diese bei der Anmeldung automatisch im Hintergrund starten und über neue Nachrichten informieren.

Ein Manko der Desktop Application Autostart Specification ist, dass diese Anwendungen nicht neu-starten, wenn sie versehentlich beendet wurden.

Eine Lösung bieten hier Systemd User-Units als ein Autorestart.

Eine Systemd User-Unit für den Mail-Client Thunderbird anlegen/erstellen/erzeugen

Alle Systemd User-Units werden unter $XDG_CONFIG_HOME/systemd/user/ bzw. $HOME/.config/systemd/user/ gespeichert. Abhängig davon, ob die Umgebungsvariable $XDG_CONFIG_HOME gesetzt ist.

Hier ein Beispiel für den Mail-Client Thunderbird:

mkdir -p ~/.config/systemd/user/
cat <<! >~/.config/systemd/user/thunderbird.service 
[Unit]
Description=Thunderbird
[Service]
Environment=DISPLAY=:0
ExecStart=/usr/bin/thunderbird
Restart=always
[Install]
WantedBy=basic.target
!

Damit eine Unit nach der Anmeldung ausgeführt wird, muss diese mittels systemctl(1) aktiviert werden:

systemctl –user enable thunderbird.service

Die Systemd User-Unit ersetzt dann den Autostart und systemd(1) überwacht den Prozess (PID) und startet diesen ggf. neu.

Wer die Leserechte des Benutzerverzeichnis eingeschränkt, oder eine restriktive Rechtemaske (umask) von bspw. 0077 gesetzt hat, kann den Start der Unit auch in den Autostart, oder in die Datei ~/.gnomerc eintragen:

systemctl –user start thunderbird.service

Dies startet die Unit manuell.