OSX Lion und die aktuellste BASH-Shell" />

mac | OSX Lion und die aktuellste BASH-Shell

Man sollte mei­nen, das Apple mit der Her­aus­gabe eines neuen Betriebs­sys­tems nach knap­pen zwei Jah­ren auch alle Kom­po­nen­ten auf den aktu­ells­ten Stand bringt — zumin­dest in Bezug auf die Standard-Shell Bash trifft das auf jeden Fall nicht zu. Auch in OS X Lion 10.7 ist die mit­ge­lie­ferte Bash-Version die 3.2.48 — die letzte Über­ar­bei­tung der Ver­sion 3. Meine frü­here Beschrei­bung zur Instal­la­tion von BASH-Version 4 trifft immer noch zu — die zur Zeit aktu­ellste Ver­sion von Bash ist die 4.2.

mac | OSX und die Shell

In MacOSX ist die Stan­dards­hell Bash — lei­der in der ca. fast schon zwei Jahre alten Ver­sion 3.2.48. Das wird jetzt nicht jeden stö­ren, da nicht jeder auf der Kom­man­do­zeile arbei­tet. Wer aber, wie ich, ab und an ein Shell-Script erstellt, wird viel­leicht schon mal mit der »neu­es­ten« Ver­sion 4.1 gelieb­äu­gelt haben. Her­vor­zu­he­ben sind

There is a new `autocd' option that, when enabled, causes bash to attempt
to `cd' to a directory name that is supplied as the first word of a
simple command.
There is a new shell option: `globstar'.  When enabled, the globbing code
treats `**' specially -- it matches all directories (and files within
them, when appropriate) recursively.
There is a new shell option: `dirspell'.  When enabled, the filename
completion code performs spelling correction on directory names during
completion.
Brace expansion now allows zero-padding of expanded numeric values and
will add the proper number of zeroes to make sure all values contain the
same number of digits.
There is a new &>> redirection operator, which appends the standard output
and standard error to the named file.
The parser now understands `|&' as a synonym for `2>&1 |', which redirects
the standard error for a command through a pipe.

Alle neuen Fea­tures auf­zu­zäh­len würde zu viel Zeit rau­ben, des­we­gen sei auf die Liste des Bash-Maintainers verwiesen.

Wie man diese Ver­sion in OSX instal­liert werde ich hier zeigen.

Wei­ter­le­sen

mac | Apple Mail gesprächiger machen

Im Nor­mal­fall braucht man sich um sein EMail-Programm kei­nen Gedan­ken machen — es funk­tio­niert ein­fach! Aber was ist, wenn man auf Feh­ler bei der Email-Kommunikation stößt? Was macht man, wenn sich das EMail-Programm nicht mit dem Ser­ver ver­bin­den will, man aber ein­fach nicht her­aus­be­kommt, woran es liegt? Die Meis­ten haben kei­nen Zugriff auf die Log­Files ihres EMail-Servers und sind somit auf die Gesprä­chig­keit ihres EMail-Programms angewiesen.

Apple Mail scheint nicht zu der Sorte Email-Programm zu gehö­ren, die es dem Benut­zer ein­fach machen — zumin­dest nicht auf der Ober­flä­che. Aber zum Glück gibt es noch die Kom­mandzeile :)

Grob ein­ge­stuft kann man ent­we­der Apple Mail von der Kom­mandzeile aus mit Para­me­tern star­ten oder aber diese Schal­ter in den Ein­stel­lungs­da­teien (Pre­fe­ren­ces) defi­nie­ren. Einen bespiel­haf­ter Auf­ruf von Apple Mail auf der Kom­mandzeile könnte so aussehen

/Applications/Mail.app/Contents/MacOS/Mail -LogSocketErrors YES -LogActivityOnHost your.mail.server -LogActivityOnPort 143 &> ~/Desktop/ConnectionLog.txt

Die Erklä­rung der Para­me­ter erfolgt wei­ter unten. Die Ein­träge in der Ein­stel­lungs­da­tei erstellt man ent­we­der mit einem Pro­gramm wie Pre­fE­dit oder aber auch schnell auf der Kom­man­do­zeile mit dem Befehl defaults. Ein bei­spiel­haf­ter Auf­ruf wäre für Apple Mail

defaults write com.apple.mail LogActivityOnPort 25

Und nun zu den ein­zel­nen Ein­stel­lungs­mög­lich­kei­ten, die ich bei Robert Chien, Apple und MacOSX­Hints gefun­den habe:

LogSo­cke­tEr­rors

Hier­mit wer­den prin­zi­pi­elle Feh­ler auf­ge­lis­tet. Diese Option kann man an– (YES) oder abschal­ten (NO).

defaults write com.apple.mail LogSocketErrors YES

LogAc­tivi­tyOn­Host

Mit die­ser Ein­stel­lung schränkt man das Log­ging auf die Kom­mu­ni­ka­tion mit einem bestimm­ten Email-Server ein.

defaults write com.apple.mail LogActivitiyOnHost mail.gmx.net

LogAc­tivi­tyOn­Port

Mit die­ser Ein­stel­lung kann man am bes­ten ein­schrän­ken. Man muss für jedes Pro­to­koll, wel­ches man beob­ach­ten möchte, ein­fach die dazu­ge­hö­rige Port­num­mer ein­tra­gen. Die am meis­ten genut­zen sind

Pro­to­kolle und ihre Ports
Pro­to­koll Port
SMTP 25
POP3 110
POP3S 995
IMAP 143
IMAPs 993

Sol­len meh­rere Ports gleich­zei­tig über­wacht wer­den, müs­sen sie ein­fach in Anfüh­rungs­zei­chen und mit Komma getrennt ein­ge­ge­ben werden.

defaults write com.apple.mail LogActivitiyOnPort "993,143"

Mit den drei Para­me­tern LogSo­cke­tEr­rors, LogAc­tivi­tyOn­Host und LogAc­tivi­tyOn­Port sollte man jedem Pro­blem beim Abru­fen oder Sen­den von Emails auf die Schli­che kom­men — wenn man die Log­Files zu deu­ten weiß.
Und wo fin­den sich die Log­Files? Beim Start von Apple Mail über die Kom­mandzeile gibt man das zu schrei­bende Log­File inkl. des Pfa­des mit an, bei den Ände­run­gen in der Ein­stel­lungs­da­tei kann man die zusätz­li­chen Log­ging­ein­träge in der Datei system.log fin­den. Dazu ein­fach das Pro­gramm Kon­sole öffnen.

Aber Ach­tung: Die Log­Files ent­hal­ten viele sen­si­ble Daten wie User­na­men, Pass­wör­ter und die über­tra­ge­nen Emails im Klar­text und aus­ser­dem wird das Log­File schnell sehr groß.

mac | Manches ist einfacher als man denkt …

Man sollte nicht immer alles so hin­neh­men, was Andere so schrei­ben — egal wie sehr man ihnen Pro­fes­sion aner­kennt. Bes­tes Bei­spiel ist der Arti­kel von MacMa­cken zum Thema IPv6-Privatsphäre. Da ver­weist er auf einen Arti­kel der Zeit­schrift c´t in dem es um die Pri­vacy Exten­sion für IPv6 geht und darum, das diese bei OSX nicht per Default akti­viert sind. Eine Auf­klä­rung, wie man diese denoch bei OSX akti­viert wird auf­ge­zeigt. Da die­ses Akti­vie­rung per sys­ctl (also per Befehls­zeile) erfolgt, ist sie somit auch nicht Neustart-sicher. Die Lösung der c´t lau­tet daher ihren selbst­ge­bau­ten Launch­Da­e­mon her­un­ter­zu­la­den und zu instal­lie­ren. Dabei gibt es, wie auch bei ande­ren *nix/BSD-Betriebssystemen, eine deut­lich ein­fa­chere Lösung:

Man lege eine Datei /etc/sysctl.conf mit dem Inhalt

net.inet6.ip6.use_tempaddr=1

an und nach einem Reboot kann man mit dem Befehl

sudo sysctl net.inet6.ip6.use_tempaddr

her­aus­fin­den, das das Ergeb­nisist und somit die Ein­stel­lun­gen wirken.

Es hilft in Zukunft also durch­aus mal nach­zu­den­ken und das aus­zu­pro­bie­ren, was bei ande­ren *nix/BSD-Betriebssystemen auch funk­tio­niert — auch eine mehr oder min­der reno­mierte Zeit­schrift wie die c´t kann sich irren. Übri­gens ver­weist Apple in sei­nen man-Pages selbst auf sysctl.conf :) .

blog | Hacker aus der Grundschule?

Seit län­ge­rem habe ich Fail2Ban auf mei­nem Ser­ver lau­fen um ein­fa­cher Angriffe auf mei­nen Ser­ver abweh­ren zu kön­nen. Inter­es­sant fand ich dazu die Aus­wer­tungs­mail Wei­ter­le­sen