Invalid user settings unter Dovecot

Vor einigen Tagen ist mir ein Mailserver (bestehend aus Postfix und Dovecot) begegnet, welcher in der mail.err regelmäßig folgende Ausgabe wiederholte:

Apr 2 13:16:35 service dovecot: lda(root): Error: chdir(/root/) failed: Permission denied (euid=65534(nobody) egid=65534(nogroup) missing +x perm: /root, dir owned by 0:0 mode=0700)
Apr 2 13:16:35 service dovecot: lda(root): Error: chdir(/root) failed: Permission denied
Apr 2 13:16:35 service dovecot: lda(root): Error: user root: Initialization failed: Namespace '': stat(/root/Maildir) failed: Permission denied (euid=65534(nobody) egid=65534(nogroup) missing +x perm: /root, dir owned by 0:0 mode=0700)
Apr 2 13:16:35 service dovecot: lda(root): Fatal: Invalid user settings. Refer to server log for more information.

Der Dovecot-Service versucht auf einen Maildir-Ordner im Nutzerverzeichnis des Nutzers root zuzugreifen, was allerdings nicht gelingt. Einfach lösen lässt sich dieses Problem in dem man einen Alias für die Mailzustellung zum Nutzer root anlegt. Dazu wird im ersten Schritt die Datei /etc/aliases bearbeitet. In dieser Datei kann der entsprechende Alias eingetragen werden:

root: 

Nachdem die Datei gespeichert wurde, muss die Datei in ihre binäre Form überführt werden und die entsprechenden Services neugestartet werden:

newaliases
service dovecot restart
service postfix restart

Damit werden die Mails von root im entsprechenden Postfach hinterlegt und die Fehlermeldung gehört der Vergangenheit an.

Ubuntu Server auf einem Linutop 2 installieren

Bei Linutop handelt es sich um eine Reihe von Kleinstrechnern. Der Linutop 2 ist dabei Baujahr 2008, besitzt einen AMD Geode LX800, welcher mit 800 Mhz getaktet ist. Daneben befindet sich in dem Gerät 512 MiB Arbeitsspeicher. Auf einem solchen Gerät wollte ich nun Ubuntu in der Servervariante installieren. Als Version kommt dabei nur die 12.04 LTS, welche bis April 2017 unterstützt wird, in Frage.

Der Grund hierfür ist das der AMD Geode LX800 kein PAE unterstützt, neue Ubuntu-Versionen dieses aber zwingend voraussetzen. Im ersten Schritt muss die Netboot-Variante (non-pae) heruntergeladen werden. Die mini.iso kann dann mit Tools wie UNetbootin auf einem USB Stick gespielt werden.

Ein Linutop 2

Ein Linutop 2

In diesem Fall wird das System von und auf diesem USB-Stick installiert. Der Grund dafür ist der 1 Gigabyte große Flashspeicher welcher nicht ausreicht um das System zu installieren. In der Standardkonfiguration weist Ubuntu der Systempartionen 512 MB und der Swap-Partion ebenfalls 512 MB zu. Wenn man der Systempartion die gesamten 1000 Megabyte zuweist, sollte sich der Ubuntu Server auch auf dem internen Flashspeicher installieren lassen, allerdings verfügt man dann nur noch über knapp 100 Megabyte freien Speicher.

Wenn man bei der Installation stattdessen das ganze auf einem angeschlossenen USB Stick installiert, sollte auch genug Platz für andere Aufgaben da sein. Die 1 Gigabyte große Flashdisk, kann dabei als Swapspeicher genutzt werden. Für die Installation muss der Linotop ans Netz angeschlossen sein. Nachdem man die grundlegenden Einstellungen vorgenommen hat, dauert die Installation zirka 60 bis 90 Minuten. Anschließend kann das System genutzt werden.

Polipo: Permission denied

Mein vor einiger Zeit aufgesetzter Proxyserver startete nicht mehr. Stattdessen bekam ich von Polipo nur noch die Meldung:

Starting polipo: Couldn't open log file /var/log/polipo: Permission denied

Allerdings ließ sich das ganze relativ problemlos aus der Welt schaffen:

touch /var/log/polipo
chmod 640 /var/log/polipo
chown proxy:proxy /var/log/polipo

Danach konnte der Dienst mittels:

service polipo restart

wieder gestartet werden.

Templates für Init-Skripte

Wenn man ein Init-Skript schreibt, kann man natürlich jedesmal von Neuem beginnen. Einfacher ist es wenn man sich eines Templates bedient. Felix H. Dahlke stellt ein solches bereit. Bei diesem Template muss nur noch das Verzeichnis der Anwendung, der Nutzername und das Kommando selbst definiert werden. Der Rest wird vom Template bereitgestellt. Nachdem man sich auf Basis des Templates ein passendes Skript unter /etc/init.d/ definiert hat, muss das ganze nur noch mit den passenden Attributen versehen werden und, auf Wunsch zu den defaults hinzugefügt werden:

chmod a+x /etc/init.d/newservice
update-rc.d newservice defaults

Lizenziert ist das Template unter der MIT-Lizenz und damit freie Software. Denn passenden Template-Quellcode findet man auf GitHub.