Archiv ‘Linux’

Freitag, 5. Februar 2016

Einem Benutzer unter Debian volle sudo-Rechte geben

Eigentlich ganz simpel:

# visudo /etc/sudoers

Danach sucht man folgenden Abschnitt und ergänzt unterhalb der Zeile, die mit root beginnt, den gewünschten Benutzer:

...
# User privilege specification
root	ALL=(ALL:ALL) ALL
user	ALL=(ALL:ALL) ALL
...

Fertig! Ab sofort kann sich der Benutzer beispielswiese mittels

$ sudo su -

zum Superuser auf dem Debian-Server machen.

Tags: , ,
Labels: Linux

2 Kommentare | neuen Kommentar verfassen

Donnerstag, 21. Januar 2016

smokeping auf einem Raspberry Pi installieren

Gestern habe ich einen verstaubten Raspberry Pi 1 aus meinem Endlager für obsolete IT-Hardware gerettet und ihn als arpwatch-Überwachungsstation aufgesetzt. Auf dem Gerät läuft folgendes Debian:

Linux raspberrypi 4.1.13+ #826 PREEMPT Fri Nov 13 20:13:22 GMT 2015 armv6l GNU/Linux

Etwas später stiess ich in Vorbereitung auf meinen Wechsel von upc cablecom zu Fiber7 auf den Artikel Fiber7 performance, in welchem Michael Stapelberg aufzeigt, wie sich die Latenz seiner Internetverbindung nach dem Wechsel von Swisscom auf Fiber7 verbessert hat.

Gedacht — getan: So etwas benötige ich natürlich auch, um meinen bevorstehenden Providerwechsel mit harten Fakten zu untermauern — wobei, ehrlich gesagt, ist mir die Latenz nicht so wichtig (bin kein Gamer), sondern viel mehr der vierfache Durchsatz und die symmetrische Down- und Upload-Geschwindigkeit zum selben Preis wie beim Kabelriesen.

Nichtsdestotrotz installierte ich mir also das Softwarepaket smokeping und seine Dependencies, wie das berühmte rrdtool aus dem Hause Oetiker:

# apt-get update
...
# apt-get upgrade
...
# apt-get install smokeping

Es wurde zwar alles nett installiert, doch konnte ich danach noch nicht auf die Web-Oberfläche unter http://localhost/smokeping/smokeping.cgi zugreifen. Unter einem x86-64 Debian war das nach der Installation automatisch möglich.

Zuerst wohl mal den Apache starten, dachte ich mir:

# /etc/init.d/apache2 start

Der Web-Server kam hoch, zeigte unter http://localhost/ die obligate Startseite an, doch unter dem Smokeping-Link kam ich statt der Smokeping-Oberfläche nur einen HTTP 403er zu Gesicht (mangels Screenshot und Text-Kopie mittels Auszug aus dem Apache error.log unter /var/log/apache2/):

...
[Wed Jan 20 22:52:59.338858 2016] [authz_core:error] [pid 2706:tid 3036673072] [client 10.0.1.101:56967] AH01630: client denied by server configuration: /usr/lib/cgi-bin/smokeping.cgi
...

Oookey … da ich smokeping auch noch auf einem „richtigen“ Linux-Server im Elternhaus laufen hatte, kopierte ich kurzerhand dessen VirtualHost-Konfiguration auf den Raspberry Pi (natürlich als Symlink auf conf-available):

# cat /etc/apache2/conf-enabled/smokeping.conf 
ScriptAlias /smokeping/smokeping.cgi /usr/lib/cgi-bin/smokeping.cgi
Alias /smokeping /usr/share/smokeping/www

<Directory "/usr/share/smokeping/www">
    Options FollowSymLinks
</Directory>

<Directory "/usr/lib/cgi-bin/">
    Options FollowSymLinks
    Require all granted
</Directory>

Noch ein …

# apache2ctl graceful

… und der 403er war weg. Das smokeping-GUI wurde aber weiterhin nicht angezeigt, sondern nur der Inhalt des CGI-Scripts im Klartext:

#!/bin/sh

exec /usr/share/smokeping/smokeping.cgi /etc/smokeping/config

Was zur Hölle … ? Doch auch diesem Fehlverhalten schaffte ich nach 15 Minuten googlen, Artikel lesen und pröbeln den Garaus: Ein simples

# a2enmod cgi

Via: Perl Apache : Perl script displayed as plain text

reichte aus, und plötzlich führte Apache das CGI-Script aus. Halleluja!

Tags: , , , , , , , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 29. Oktober 2015

Fortschritt von apt-get mittels der Log-Datei mitverfolgen

Wer nach langer, langer Zeit apt-get wieder einmal ausführt, kann je nachdem Stunden warten, bis das Upgrade abgeschlossen ist.

Um sich einen Überblick zu verschaffen, wie weit die Installation bereits vorgeschritten ist, kann sich der Log-Datei der Anwendung behelfen und diese in einem zweiten Terminal analysieren.

Als erstes findet man heraus, wie viele Debian-Pakete bereits heruntergeladen und entpackt wurden:

# cat /var/log/apt/term.log | sort | grep ^Unpacking | wc -l

Ist der Upgrade-Prozess bereits weiter fortgeschritten, kann man sich mit folgendem Befehl anschauen, wie viele Pakete bereits effektiv installiert wurden:

# cat /var/log/apt/term.log | sort | grep ^Setting | wc -l

Tags: , , , , , ,
Labels: Linux

1 Kommentar | neuen Kommentar verfassen

Sonntag, 16. August 2015

XPS-Dateien unter Mac OS X zu PDF konvertieren

… scheint mit quelloffener Software auf der Kommandozeile nicht — oder nur unter grösserem Aufwand — möglich zu sein: MacPorts hat dieses Paket nicht im Angebot (Nachtrag: Homebrew hingegen schon).

Ich bin deshalb auf meinen Linux-Server ausgewichen:

# apt-get install apt-get install libgxps-utils

Anschliessend konnte ich die XPS-Datei mit folgendem Befehl umwandeln:

$ xpstopdf datei.xps

Tags: , , , , , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 9. August 2015

Apple TV verursacht zusammen mit einer Apple Time Capsule arpwatch flip flops

Seit ich vor einigen Tagen im Netzwerk eines Familienangehörigen zwei gebrauchte Apple Time Capsules (500GB sowie 2TB) installiert habe, füllt sich das Log meiner arpwatch-Instanz mit folgenden Meldungen:

            hostname: 
          ip address: 192.168.44.155
           interface: eth1
    ethernet address: aa:bb:cc:dd:ee:ff
     ethernet vendor: 
old ethernet address: 00:11:22:33:44:55
 old ethernet vendor: Apple, Inc
           timestamp: Sunday, August 9, 2015 15:36:58 +0200
  previous timestamp: Saturday, August 8, 2015 23:03:54 +0200
               delta: 16 hours

Aus Sicht von arpwatch „übernimmt“ die Time Capsule 500GB die IP-Adresse des Apple TVs. Dies ist insofern unzulässig, weil ich die IPs statisch festgelegt habe und mittels einem DHCP-Server an die anfragende MAC-Adresse aushändige.

Nach kosmetischen Anpassungen an der Konfiguration der Time Capsule brachte ich die Fehlermeldung nicht weg. Eine Google-Suche hingegen liefert mir einen Hinweis, was das wirklich Problem sein könnte:

Bug 841067 – Arpwatch repeatedly misdetects „Bonjour Sleep Proxy“ as „flip flop“

Frei übersetzt legt die Time Capsule die Bonjour-Informationen des Apple TVs in ihrem Zwischenspeicher ab. Wenn sich der Apple TV in den Schlafmodus verabschiedet, weil das Gerät nicht (mehr) genutzt wird, sendet die Time Capsule Infos über den Apple TV regelmässig ins Netzwerk, damit andere Apple-Geräte wissen, dass ein Apple TV im Netz hängt. Irgendwie scheint dieser Bonjour-Broadcast für arpwatch auszusehen, als ob die Time Capsule unter der IP-Adresse des Apple TVs funkt.

Ich habe den Log-Alarm deshalb nun so umgestellt, dass er flip flops mit dieser IP ignorieren wird.

Nachtrag

Ein bereits älterer Thread zu dem Thema im Apple-Diskussionsforum: ARP Cache Poison behavior by Apple TV

Tags: , , , , , , ,
Labels: Apple, Linux

4 Kommentare | neuen Kommentar verfassen

Mittwoch, 24. Juni 2015

Raspberry Pi 2 einrichten (10/n): Apple USB-Tastatur sauber einrichten

Bei der einzigen im Haushalt freien USB-Tastatur handelt es sich um ein Apple Aluminium Keyboard mit Schweizerdeutschem Layout. Diese wird für die Installation des neuen Taschencomputers benötigt, solange noch keine Netzwerkverbindung verfügbar ist (dann geht alles viel einfacher mittels SSH).

Die Tastatur kann unter Raspberry Pi und jedem anderen Linux problemlos verwendet werden.

Die Tastatur kann ganz einfach mittels raspi-config eingerichtet werden (Kurzanleitung für die graphische Oberfläche). Leider scheinen nachträgliche Anpassungen mit diesem Tool nur dann möglich zu sein, wenn die Tastatur auch wirklich am USB-Port hängt.

Deshalb kann man die Anpassungen auch manuell an folgender Datei vornehmen:

/etc/default/keyboard

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="applealu_iso"
XKBLAYOUT="ch"
XKBVARIANT="de_mac"
XKBOPTIONS=""

BACKSPACE="guess"

Via: Changing the default keyboard layout from “gb” to “us” in Raspbian “wheezy” for Raspberry Pi

Apple Aluminium-Keyboards gibt es in drei Standards:

  • ANSI
  • ISO
  • JIS

Quelle: How to tell an Apple ISO USB keyboard from an Apple ANSI ISO keyboard

Da ich eine Tastatur mit schweizerdeutschem Layout besitze, vermute ich, dass es sich dementsprechend um ein ISO-Keyboard handelt.

Damit sich die F1-F12-Tasten wie ebendiese Tasten verhalten, musste ich zudem noch folgende Datei erstellen:

/etc/modprobe.d/hid_apple.conf

options hid_apple fnmode=2 iso_layout=0

Die bedeuten der Zahlenwerte für fnmode (0, 1 und 2) sind im Artikel „Apple Keyboard“ beschrieben.

Ist die Tastatur korrekt konfiguriert, kann man mit Druck auf die Tasten Ctrl-Alt-F1 von einer X-Oberfläche in eine Shell wechseln. Zurück ins GUI geht es, in dem man Ctrl-Alt-F7 betätigt.

Tags: , , , , ,
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Montag, 22. Juni 2015

Raspberry Pi 2 einrichten (6/n): Automatisch in einen Web-Browser starten

Da ich meinen Raspberry Pi 2 dazu verwende, ein Dashboard anzuzeigen, soll der Taschencomputer nach einem Kaltstart automatisch aufstarten, sich mit dem Standardbenutzer in die graphische Oberfläche einloggen und danach ein Web-Browser-Fenster mit einer bestimmten URL öffnen. Dabei soll nur der Web-Site-Inhalt angezeigt werden, nicht aber die Fensteroberfläche des Window-Managers.

Automatischer Login

Auf der Kommandozeile öffnet man raspi-config und aktiviert dort die Option Enable Boot to Desktop/Scratch. Wichtig ist, dass man die Option mit den Cursortasten auswählt und danach mittels Tabulator auf „OK“ springt und dieses auch betätigt.

Quelle: RASPI-CONFIG

Automatischer Start des Web-Browsers mit einer bestimmten URL

Damit nun die gewünschte Web-Site angezeigt wird, muss man dem Betriebssystem nun noch sagen, dass bei jedem Login in die grafische Oberfläche ein entsprechender Befehl ausgeführt werden soll:

~/.config/lxsession/LXDE-pi/autostart

@xset s off
@xset -dpms
@xset s noblank

@unclutter -idle 1
# PROD
#@chromium-browser --incognito --kiosk http://dashboard.local/

# DEBUG
@chromium-browser --remote-debugging-port=4444 --show-fps-counter --incognito --kiosk http://dashboard.local/

Quelle: How to auto start chromium after boot on the Raspberry 2 (2015-01-31 debian wheezy)?

Ferner: How To Autostart Apps In Rasbian LXDE Desktop

Auch: Raspberry Pi Dashboard Kiosk

Wichtig: In vielen Anleitungen liest man, dass man die Datei /etc/xdg/lxsession/LXDE-pi/autostart (Raspberry Pi 2) respektive die Datei /etc/xdg/lxsession/LXDE/autostart (Raspberry Pi 1) mit den obigen Befehlen ergänzen soll. In meinem Fall hat das zu einer einstündigen Debugging-Session geführt, die erst mit folgendem Hinweis gelöst werden konnte:

Note: If both files are present, lxsession only executes the local file as of v0.4.9

Aus irgendeinem Grund war bei meiner Installation die Datei ~/.config/lxsession/LXDE-pi/autostart vorhanden, weshalb die Einträge in den generischen autostart-Dateien nie berücksichtigt wurden.

Quelle: LXDE

Mauszeiger ausblenden

Damit der Mauszeiger ausgeblendet wird, muss noch folgendes Paket installiert werden:

# apt-get install unclutter

Das Programm wird anschliessend beim Ausführen der Autostart-Datei ausgeführt.

Quelle: Step 16: Hiding the mouse pointer

Alternative: Window Manager umgehen und direkt in ein Browser-GUI starten

Dank an Simon Jenny für den Hinweis — leider bleibt der Bildschirm schwarz, diese Lösung funktioniert also derzeit nicht.

~/.xinitrc

xset -dpms &
xset s off &
unclutter -idle 1 &

exec chromium-browser \
--window-position=0,0 \
--window-size=1080,1920 \
--incognito \
--kiosk \
http://dashboard.local/

Folgende zusätzliche Parameter könnten ebenfalls hinzugefügt werden:

...
--no-first-run \
--disable \
--disable-translate \
--disable-infobars \
--disable-suggestions-service \
--disable-save-password-bubble \
--disk-cache-dir=/tmp/chromium/cache/ \
--user-data-dir=/tmp/chromium/user_data/ \
--show-fps-counter \
--remote-debugging-port=4444 \
...

/etc/rc.local

...
/usr/bin/xinit /home/pi/.xinitrc &
exit 0

Quelle: Raspberry Pi Information Radiator: Booting into a Browser

Tags: , , , , , , , ,
Labels: IT, Linux

5 Kommentare | neuen Kommentar verfassen

Montag, 22. Juni 2015

Raspberry Pi 2 einrichten (4/n): Chromium installieren

Nachdem der Raspberry Pi 2 auf Raspbian Jessy läuft, können wir die neueste verfügbare Version des Chromium-Browsers herunterladen und installieren. Wir bedienen uns dazu der Repositories von Ubuntu und laden uns (Stand 22. Juni 2015) folgende zwei .deb-Pakete herunter:

Die Links zu den vorkompilierten Binaries finden sich auf den beiden Paket-Seiten rechts im Abschnitt „Downloadable Files“.

WICHTIG: Unter Raspberry Pi 1 läuft nur die unter Wheezy verfügbare Version 22 von Chromium. Neuere Versionen funktionieren unter diesem System nicht, weil die ARMv6-CPU des Raspberry Pi 1 keine hardwarebasierte Fliesskommaeinheit mitbringt. Das armhf-Paket von Ubuntu setzt diese CPU-Einheit aber leider voraus. Wer Chromium trotzdem auf dem nachfolgenden Weg installiert, erhält spätestens beim Start von Chromium folgende Fehlermeldung:

$ chromium-browser --version
Illegal instruction

Raspberry Pi 2 basiert glücklicherweise auf der ARMv7-Plattform und hat diese Einheit mit an Bord.

Sobald die Dateien im lokalen Dateisystem vorliegen, installiert man sie folgendermassen:

# dpkg -i chromium-browser_43.0.2357.81-0ubuntu0.15.04.1.1170_armhf.deb chromium-codecs-ffmpeg-extra_43.0.2357.81-0ubuntu0.15.04.1.1170_armhf.deb

Quelle: Installing Google Chromium on ARM devices with Flash plugin – solution

Ob die Installation erfolgreich war, zeigt folgender Befehl auf der Kommandozeile:

$ chromium-browser --version
Chromium 43.0.2357.81 Built on Ubuntu 15.04, running on Raspbian 8.0

Tags: , , , , ,
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Montag, 22. Juni 2015

Raspberry Pi 2 einrichten (7/n): Zeitzone und Uhrzeit einstellen

Mittels folgendem Befehl sollte man die Uhrzeit richtig stellen:

# dpkg-reconfigure tzdata

Ausserdem empfiehlt es sich, die Uhrzeit stündlich neu zu stellen:

# apt-get install ntpdate

/etc/crontab

...
* * * * *	root	ntpdate -s ch.pool.ntp.org
...

Tags: , , , ,
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Montag, 22. Juni 2015

Raspberry Pi 2 einrichten (5/n): Bildschirmausgabe um 90 Grad drehen

Da ich meinen Raspberry Pi 2 für die Anzeige eines web-basierten Dashboards verwende, dessen 22″-Monitor hochkant an einer Wand neben der Eingangstüre unserer Wohnung hängt, muss ich die Bildschirmausgabe um 90 Grad im Uhrzeigersinn rotieren.

Hierzu ist mindestens eine Einstellung namens display_rotate im Pseudo-BIOS des Raspberry Pis 2 nötig:

/boot/config.txt

...
disable_overscan=1
...
gpu_mem=256
...
display_rotate=1

Quelle: CONFIG.TXT

In der Dokumentation sind die Gradangaben für die Werte 0 bis 3 aufgeschlüsselt — 90 Grad im Uhrzeigersinn werden mit dem Wert 1 konfiguriert.

Tags: , , , , , , , , , , ,
Labels: IT, Linux

6 Kommentare | neuen Kommentar verfassen