Wie kommt dieses Programm auf meinem Rechner …

Manchmal sitzt man an Terminal und schaut sich mit htop die Auslastung des Rechners an. Dabei fallen einem so manche neue Programme auf die man bisher noch nicht entdeckt hat. Im nachfolgenden Fall das Programm beam.smp.

Interessant sind nun zwei Dinge, erstens was macht das Programm überhaupt und zweitens wer hat das veranlasst das dieses Programm installiert ist, dauernd läuft und damit Speicherplatz und Rechnerzeit frisst?

Ermitteln welches Debian/Ubuntu Paket das Programm installiert hat ist einfach:

# dpkg -S beam.smp
erlang-base: /usr/lib/erlang/erts-6.2/bin/beam.smp

Nun kann mit dem Paketnamen erlang-base die Paketinformation abgerufen werden.

# aptitude show erlang-base
Paket: erlang-base
Zustand: Installiert
Automatisch installiert: nein
Version: 1:17.3-dfsg-4
Priorität: optional
Bereich: interpreters
Verwalter: Debian Erlang Packagers <pkg-erlang-devel@lists.alioth.debian.org> Architektur: amd64
Unkomprimierte Größe: 13,4 M
Hängt ab von: procps, adduser, libc6 (>= 2.14), libsystemd0, libtinfo5, zlib1g (>= 1:1.2.2), init-system-helpers (>= 1.18~)
Empfiehlt: libsctp1 (>= 1.0.16+dfsg), erlang-crypto (= 1:17.3-dfsg-4), erlang-syntax-tools (= 1:17.3-dfsg-4)
Schlägt vor: erlang-tools (= 1:17.3-dfsg-4), erlang, erlang-manpages, erlang-doc
Kollidiert mit: erlang (< 1:17.3-dfsg-4), erlang (< 1:17.3-dfsg-4), erlang-base-hipe, erlang-base-hipe, erlang-doc (> 1:17.3-dfsg-999), erlang-doc (> 1:17.3-dfsg-999), erlang-doc (<
1:17.3-dfsg), erlang-doc (< 1:17.3-dfsg), erlang-doc-html (< 1:13.b.4), erlang-doc-html (< 1:13.b.4), erlang-manpages (<= 1:11.b.1-2), erlang-manpages (<= 1:11.b.1-2),
erlang-base
Ersetzt: erlang (< 1:17.3-dfsg-4), erlang (< 1:17.3-dfsg-4), erlang-base-hipe, erlang-base-hipe, erlang-dev (< 1:17.3-dfsg-4), erlang-dev (< 1:17.3-dfsg-4), erlang-doc (>
1:17.3-dfsg-999), erlang-doc (> 1:17.3-dfsg-999), erlang-doc (< 1:17.3-dfsg), erlang-doc (< 1:17.3-dfsg), erlang-doc-html (< 1:13.b.4), erlang-doc-html (< 1:13.b.4),
erlang-examples (< 1:17.3-dfsg-4), erlang-examples (< 1:17.3-dfsg-4), erlang-manpages (<= 1:11.b.1-2), erlang-manpages (<= 1:11.b.1-2), erlang-mode (< 1:12.b.1-dfsg-2),
erlang-mode (< 1:12.b.1-dfsg-2), erlang-nox (< 1:17.3-dfsg-4), erlang-nox (< 1:17.3-dfsg-4), erlang-src (< 1:17.3-dfsg-4), erlang-src (< 1:17.3-dfsg-4), erlang-x11 (<
1:17.3-dfsg-4), erlang-x11 (< 1:17.3-dfsg-4)
Liefert: erlang-abi-15.b, erlang-abi-17.0
Beschreibung: Virtuelle Maschine für Erlang/OTP und Basisanwendungen
Dieses Paket enthält eine Erlang/OTP-Laufzeitumgebung. Sie wurde ohne HiPE-Unterstützung konfiguriert und erstellt (sie kompiliert nur zu Byte-Code). Das Paket enthält ferner einen
minimalen Satz an Erlang-Anwendungen:
compiler - kompiliert Erlang-Quelltexte zu Byte-Code;
erts - die Erlang-Laufzeitsystemanwendung;
kernel - Programm-Code zum Starten des Erlang-Laufzeitsystems;
ose - Code für das Betriebssystems Enea OSE;
sasl - die Systemarchitektur unterstützende Bibliotheksanwendung;
stdlib - Module zur Änderung von Listen, Zeichenketten, Dateien, usw.
Homepage: http://www.erlang.org/

Markierungen: devel::interpreter, role::program, uitoolkit::nurses

Über den Sinn dieses Paket sagt das leider noch nichts aus. Eine Auskunft über das Mutterpaket liefert aber folgendes.

aptitude show erlang
Paket: erlang
Zustand: nicht installiert
Version: 1:17.3-dfsg-4
Priorität: optional
Bereich: interpreters
Verwalter: Debian Erlang Packagers <pkg-erlang-devel@lists.alioth.debian.org> Architektur: all
Unkomprimierte Größe: 51,2 k
Hängt ab von: erlang-base | erlang-base-hipe, erlang-dev, erlang-asn1, erlang-common-test, erlang-corba, erlang-crypto, erlang-debugger, erlang-dialyzer, erlang-diameter, erlang-edoc,
erlang-eldap, erlang-erl-docgen, erlang-et, erlang-eunit, erlang-gs, erlang-ic, erlang-inets, erlang-megaco, erlang-mnesia, erlang-observer, erlang-odbc, erlang-os-mon,
erlang-parsetools, erlang-percept, erlang-public-key, erlang-reltool, erlang-runtime-tools, erlang-snmp, erlang-ssh, erlang-ssl, erlang-syntax-tools, erlang-test-server,
erlang-tools, erlang-typer, erlang-webtool, erlang-wx, erlang-xmerl
Empfiehlt: erlang-jinterface, erlang-ic-java, erlang-mode, erlang-src, erlang-examples
Schlägt vor: erlang-manpages, erlang-doc
Beschreibung: Simultane, verteilte und funktionelle Echtzeitsprache
Die quelloffene, funktionale Programmiersprache Erlang wurde am Ericsson Computer Science Laboratory konzipiert.

Einige der Hauptmöglichkeiten von Erlang sind:
* Klare, deklaratorische Syntax und weitgehend frei von Nebeneffekten;
* Eingebaute Unterstützung für Echtzeit-, simultane und verteilte Programmierung;
* Für die Entwicklung von robusten und fortlaufend verarbeiteten Programmen konzipiert;
* Dynamische Ersetzung von Code zur Laufzeit.

Die Erlang-Veröffentlichung enthält auch OTP (Open Telecom Platform), das einen reichen Satz an Bibliotheken und Anwendungen liefert.

Dieses Pseudopaket installiert Laufzeit, Anwendungen, Quelltext und Code-Beispiele für Erlang/OTP sowie den Erlang-Bearbeitungsmodus für Emacs.
Homepage: http://www.erlang.org/

Markierungen: devel::TODO, devel::interpreter

Nun Gut, es handelt sich also um einen sicheren Interpreter für etwas das fortlaufend arbeiten soll. Das Was? und Warum? bleiben hier aber immer noch unbeantwortet.

Ermitteln wir mal warum dieses Paket eigentlich installiert wurde.

# aptitude why erlang-base
i cinnamon-core Hängt ab von cinnamon (>= 2.2)
i A cinnamon Hängt ab von libjs-jquery
i A libjs-jquery Empfiehlt javascript-common
i A javascript-common Schlägt vor apache2 (>= 2.4.6~) | lighttpd | httpd
i A yaws Liefert httpd
i A yaws Hängt ab von erlang-yaws (>= 1.98-4)
i A erlang-yaws Hängt ab von erlang-base (>= 1:17.1-dfsg) | erlang-base-hipe (>= 1:17.1-dfsg)

Ah, das sind die richtigen Hinweise, es handelt sich um ein Paket das vom cinnamon-core dem Desktop Manager, über die libjs-jquery, javascript-common und schliesslich als httpd (Webserver) in Form von yaws installiert worden. Wie angezeigt, täten es genauso gut apache2, lighttpd oder httpd. Hier wurde bei der Installation automatisch yaws ausgewählt, da der Dienst vielleicht besonders klein und Resources sparend oder wie oben erwähnt besonders sicher ist. Oder was auch immer …

Ein nahtloser Austausch der httpd Funktionalität wird mit dem Kommando:

# aptitude install lighttpd yaws-

erreicht.

Das besondere daran ist das nachfolgende – Minuszeichen hinter dem zu ersetzenden Paketnamen. Es ist damit der Neuinstallation des Paketes lighttpd nicht im Weg und es wird trotzdem eine komplette Deinstallation von allen abhängigen Paketen vermieden. Wäre das im diesen Fall erfolgt, hätte das den Desktop Manager (cinnamon-core) betroffen, was nahezu erstmal das halbe System deinstallieren hätte.

Das das Paket aber nur empfohlen wird, kann es potentiell auch entfernt werden hier würde ein

# aptitude remove javascript-common

die Sache bei der Wurzel packen und das System davon maximal befreien.

CentOS Admin Commands

Verifikation aller installierten RPM Pakete

  • rpm -V $(rpm -q -a)
S.5....T.  c /etc/bareos/bat.conf
S.5....T.    /usr/share/pear/.depdb
.......T.    /usr/share/pear/.depdblock
S.5....T.    /usr/share/pear/.filemap
.......T.    /usr/share/pear/.lock
S.5....T.  c /etc/yum/pluginconf.d/versionlock.list
prelink: /usr/bin/gnome-control-center: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/gnome-control-center
.M....G..    /var/log/gdm
.M.......    /var/run/gdm
fehlend     /var/run/gdm/greeter
.M.......    /usr/bin/amd-console-helper
prelink: /usr/lib64/fglrx/fglrx-libGL.so.1.2: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/fglrx/fglrx-libGL.so.1.2
prelink: /usr/lib64/libatiuki.so.1.0: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/libatiuki.so.1.0
S.5....T.  c /etc/maven/maven2-depmap.xml
S.5....T.  c /etc/ssh/ssh_config
..5....T.  c /usr/lib64/security/classpath.security
S.5....T.  c /etc/rsyslog.conf
S.5....T.  c /etc/vdsm/vdsm.conf
S.5....T.  c /etc/sysconfig/nfs
S.5....T.  c /var/lib/nfs/etab
S.5....T.  c /var/lib/nfs/rmtab
S.5....T.    /sbin/rmt
S.5....T.  c /etc/bareos/bareos-sd.conf
.M.......    /var/lib/bareos/storage
prelink: /usr/bin/csslint-0.6: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/csslint-0.6
....L....  c /etc/pam.d/fingerprint-auth
....L....  c /etc/pam.d/password-auth
....L....  c /etc/pam.d/smartcard-auth
....L....  c /etc/pam.d/system-auth
S.5....T.  c /etc/bareos/bareos-dir.d/webui-consoles.conf
.......T.  c /etc/bareos/bareos-dir.d/webui-profiles.conf
S.5....T.  c /etc/bareos/bconsole.conf
.......T.  c /etc/xinetd.d/rsync
S.5....T.  c /etc/bareos/bareos-fd.conf
prelink: /usr/bin/rsvg-convert: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/rsvg-convert
prelink: /usr/bin/rsvg-view: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/rsvg-view
prelink: /usr/lib64/libm17n.so.0.3.0: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/libm17n.so.0.3.0
..5....T.  c /etc/inittab
..5....T.  c /etc/sysctl.conf
.......T.  c /etc/dnsmasq.conf
S.5....T.  c /etc/sudoers
S.5....T.  c /etc/hosts.allow
S.5....T.  c /etc/hosts.deny
S.5....T.  c /etc/printcap
prelink: /usr/bin/gnome-system-monitor: at least one of file's dependencies has changed since prelinking
S.?......    /usr/bin/gnome-system-monitor
S.5....T.  c /etc/virt-v2v.conf
S.5....T.  c /etc/libvirt/libvirtd.conf
S.5....T.  c /etc/libvirt/qemu.conf
S.5....T.  c /etc/logrotate.d/libvirtd
S.5....T.  c /etc/sysconfig/libvirtd
.M.......    /var/cache/libvirt/qemu
S.5....T.  c /etc/libvirt/qemu-sanlock.conf
.M....G..    /var/lib/libvirt/sanlock
.M.......  c /etc/cups/subscriptions.conf
prelink: /usr/lib64/gimp/2.0/plug-ins/file-svg: at least one of file's dependencies has changed since prelinking
S.?......    /usr/lib64/gimp/2.0/plug-ins/file-svg
S.5....T.  c /etc/sysconfig/cpuspeed
S.5....T.  c /etc/bareos/bareos-dir.conf
prelink: /usr/libexec/ibus-engine-m17n: at least one of file's dependencies has changed since prelinking
S.?......    /usr/libexec/ibus-engine-m17n
S.5....T.  c /etc/login.defs
S.5....T.  c /etc/openldap/ldap.conf
S.5....T.  c /etc/pam_ldap.conf
.......T.    /etc/dhcp/dhclient.d/nis.sh
S.5....T.  c /etc/httpd/conf.d/ssl.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

Nachruf Michael Koehne (Kraehe)

Die Linux/Unix Szene in Bremen trauert um Michael Koehne alias (Kraehe,Kephra).

Er starb letzte Woche an den Folgen seiner Krebserkrankung.

Als alter Hase in Sachen Rechnertechnik und Unixoiden Betriebssystemen ist er vielen in lebendiger Erinnerung.

Sein Wirken in Bremen für die Verbreitung des freien Betriebsystems Debian GNU/Linux in den frühen Anfängen der 90′ Jahre ist unvergessen.

Als Mitglied der Linux User Group – Bremen war er bis zum Schluß der beständigste Teilnehmer des IRC-Channels #lug-bremen.

Sein letzter Log Eintrag ist datiert auf den 01.04.2016 @ 12:55pm (UTC).
FreeNode/#lug-bremen.txt:2863:T 1459515309 * kraehe hat die Verbindung getrennt

Wir drücken der Familie und allen Freunden unser tiefstes Bedauern aus.

R.i.P.

LUG-Bremen, Bremen den 6.4.2016

Roaming Raspberry Pi

Mit folgender Konfiguration wird ein Raspberry Pi 2 unter Raspbian 4.1 (Debian 8 Jessie) dazu gebracht automatisches WLAN roaming durchzuführen.
Die Lösung arbeitet mit dem Daemon wpa_supplicant im wpa-ap-mode 2. Dieser Daemon hat den Vorteil, im Betrieb keine grafische Oberfläche zu genötigen.

# Inhalt von /etc/network/interfaces:
# ----------------------------------
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-driver wext
    wpa-ap-mode 2
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Die WLAN Konfigurationsdatei wpa_supplicant.conf spezifiziert dabei die zu verwendenden WLAN Netze und gleichzeitig deren Reihenfolge bei der Suche.

Die Datei wird am einfachsten mit dem (grafischen) Tool wpa_gui erstellt und verwaltet. Das Tool ist evtl. noch nach zu installieren mit:

sudo apt-get install wpagui

Nach dem Starten der grafischen Oberfläche mit startx, öffnen eines Terminals und Starten des Tools mit sudo wpa_gui & , kann Die eigentliche Konfiguration von neuen Netzen nun mit Hilfe von WLAN Scan entsprechender Auswahl und anschliessender Eingabe der WLAN Parameter erzeugt werden. Das Abspeichern der WLAN Konfiguration mit File->Save ist abschliessend Pflicht.

Um sicher zu gehen das in Zukunft alles auch automatisch funktioniert, sollte nun ein sudo reboot erfolgen.

Ein Prüfen mit welchem WLAN man gerade verbunden ist, kann auf der Kommandozeile mit Hilfe des Kommandos iwconfig jederzeit leicht durchgeführt werden.

# Beispiel Inhalt von /etc/wpa_supplicant/wpa_supplicant.conf
#------------------------------------------------------------
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="Android-AP-4711"
    psk=f72c74506cc80f080db5e2ece7fc830b1435c7b31785838051bfe6ec413814e2
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP
    auth_alg=OPEN
}

network={
    ssid="Welcome-Netz"
    key_mgmt=NONE
    auth_alg=OPEN
}

Vorstellung sshuttle – VPN über ssh

Am Sonntag den 21. Februar wurde das Program sshuttle vorgestellt. sshuttle funktioniert wie ein VPN. Allerdings ist auf dem Server keine Installation nötigt. Auf dem Server muss lediglich Python und SSH-Zugriff vorhanden sein.

sshuttle ist eine komfortable Alternative zu SSH-Tunneln und VPN Lösungen.

Folien der Präsentation: sshuttle [PDF]

Vortrag Secure Shell

Vortrag Secure Shell

Am Di. den 19.01.2016 gab es ab 19 Uhr im Hackerspace einen Vortrag zu OpenSSH und SSH:

Die ssh-Benutzung ist in Linux für Admins allgegenwärtig: ssh bietet eine sichere Verbindung, mit minimalen Anforderungen an das Zielsystem, mit komplettem Zugriff auf die Systemkonfiguration. Dabei kann ssh sehr sicher sein: die Sicherheit einer Anmeldung mit einem public key nach RSA oder ECDSA kann man kaum überbieten.

Wir sehen uns erst den Verbindungsaufbau an, mit Serverauthentifizierung und Schlüsselaustausch. Danach meldet sich der Benutzer an – mit seinem public key. Dazu wird ein Setup vorgestellt, das sowohl die Serverauthentifizierung als auch die Benutzeranmeldung mit Zertifikaten erledigt.

Die Vor- und Nachteile werdenbesprochen und Konfigurationsvorschläge gemacht. Nicht im Fokus stehen die VPN-artigen Portweiterleitungen, die zu den openssh-Features gehören.

Vorstellung des Programms Structorizer

Vorgestellt wurde das Produktivitätstool Structorizer von structorizer.fisch.lu. Es ermöglicht die einfach Erstellung von Struktogrammen. Gewöhnlich eine trockene Sache, die von den meisten Programmieren als *Pflicht* erst nach der eigentlichen Programmierung erledigt wird. Nicht so bei Strukturizer, dieses Tool macht im Vorfeld der Programmierung schon riesigen Spass. Neben der intuitiven Modellierung der Strukturen mit Drag & Drop, bietet es beim Entwickeln bereits eine interaktive Simulation des Verhaltens der Strukturen incl. des Unterprogrammaufrufs. Hierzu werden Variablen erkannt und Ein- Ausgabe Funktionen bereit gestellt. Der anschliessenden Source Code Export in diverse Sprachen steigert die Produktivität weiter. Der Export in Bild- und Papierform wird dabei dann eher zur Nebensache.

Git – Verteilte Versionskontrolle

Heute gab es einen Vortrag zum Thema Versionkontrolle mit Git. Es wurden die grundlegendsten Git Kommandos (git) für das Anlegen eines GIT Repositorys, das Hinzufügen einer Datei, deren Versionierung nach Änderung und das Branching  auf der Kommandozeile vorgestellt. Ein git clone eines Projektes von Github und die Demonstration der grafischen Hilfsmittel  gitk, gitg git gui tools vervollständigten den Vortrag.