zurück zum Artikel

Sicherer arbeiten ohne Administrationsrechte bei Mac OS X

Andreas Beier

Mac OS X steht in dem Ruf, ein sicheres Betriebssystem zu sein. Den Beweis dafür musste es bisher schuldig bleiben. Zurzeit befinden sich nämlich so gut wie keine bekannten Schädlinge im Umlauf, die Mac OS X angreifen. Das sollte jedoch kein Grund sein, nachlässig zu arbeiten, zumal Mac OS X alles mitbringt, was zur Vorbeugung nötig ist.

Der erste Benutzer, den Mac OS X bei der Installation anlegt, gehört zur Gruppe der Administratoren und genießt damit besondere Privilegien. Zum täglichen Arbeiten sind die aber gar nicht notwendig. Ohne sie arbeitet es sich genauso gut, nur sehr viel sicherer. Mitglieder der Administratorengruppe haben Zugriff auf mehr (Konfigurations-)Dateien als Standardbenutzer. Viren oder andere Schädlingsprogramme, die sich über ein solches Konto auf einem Rechner einnisten wollen, finden deshalb mehr Angriffspunkte. Zudem hat Apple den sudo-Befehl (später mehr dazu) etwas lax vorkonfiguriert, was möglicherweise unnötig die Sicherheit schwächt. Der Artikel zeigt nicht nur, wie man sudo sicher konfiguriert, sondern auch, wie man Benutzer- und Gruppenrechte setzt und herausfindet, wo Programme an falsch gesetzten Rechten scheitern.

Unter Mac OS X gehört jeder Benutzer zur Gruppe "staff". Administratoren gehören außerdem noch der Gruppe "admin" an. Anhand des Namens und der Gruppenzugehörigkeit weiß das Betriebssystem, auf welche Daten ein Anwender zugreifen darf und ob er sie nur lesen und/oder auch verändern darf. Neben dem Besitzer eines Objekts und dessen Gruppe kennt das Betriebssystem auch noch Rechte für die anderen Konten ("others"), die weder Benutzer noch in der Gruppe sind; sie dürfen meist nur lesen. Der Finder offenbart die Rechtevergabe im Bereich "Eigentümer & Zugriffsrechte" des Informationsdialogs einer Datei oder eines Verzeichnisses. Mit Mac OS X10.4 alias Tiger hat Apple die bereits von anderen Plattformen bekannten Access Control Lists (ACLs) eingeführt, die eine wesentlich detailliertere Rechtevergabe zulassen als das von Unix übernommene Benutzer-Gruppen-Prinzip. Allerdings haben die Entwickler bei Apple nur der Serverversion von Mac OS X eine grafische Bedienoberfläche zur Manipulation von ACLs spendiert. Hier springt das kostenlose Sandbox [1] in die Bresche.

Der Bereich "Benutzer" der Systemeinstellungen fasst die meisten Aspekte der Benutzerverwaltung unter einem Dach zusammen.

Weite Teile des Systems gehören dem Super-User root, vom Finder "System" genannt, und nur er darf Änderungen daran vornehmen. Root ist alleiniges Mitglied der Gruppe "wheel", die auch auf die root gehörenden Dateien und Verzeichnisse nur lesend zugreifen darf. Etliche Verzeichnisse und Dateien in /System/Library, deren Besitzer root ist, dürfen auch Angehörige der Admin-Gruppe einsehen, einige wenige dürfen sie auch verändern.

Administratoren genießen darüber hinaus einen Sonderstatus. Das System erlaubt ihnen wie root, über das Unix-Kommando sudo Befehle mit den Rechten anderer Benutzer auszuführen. Dazu trägt es Administratoren in die Datei /etc/sudoers ein. Das systemeigene Installationsprogramm nutzt den sudo-Mechanismus beispielsweise, um Dateien mit den Rechten von root in Verzeichnisse zu schreiben, die nur der Super-User modifizieren darf. Ein Admin darf also erst einmal nicht alles, kann aber mittels sudo so tun, als ob er root sei und sich auf diesem Weg Zugriff auf alle Dateien und Konfigurationsparameter verschaffen.

Um ein Konto von Admin- auf Standardstatus herunterstufen zu dürfen, gibt es nur eine Voraussetzung: Es muss noch ein weiteres Admin-Konto existieren. Das dient fortan dazu, etwa Programme zu installieren oder
im Finder Einblick in gesperrte Ordner zu nehmen.

Ansonsten unterscheidet sich das Arbeiten mit einem Standardkonto kaum von dem mit einem Admin-Konto. Benötigt Mac OS X mehr Rechte, als der Benutzer innehat, weist es häufig automatisch darauf hin und bietet die Option, sich mit Administratordaten die nötigen Rechte zu verschaffen. Solche Abfragen tauchen auch auf, wenn man als Administrator unterwegs ist, als normaler Benutzer gibt man nicht mehr seine Kontoinformationen ein, sondern die des Administrators. Auf diesem Weg erhebt man ein eingeschränktes Konto in der Benutzerverwaltung auch problemlos wieder in den Admin-Status. Die Abfrage erscheint hier nicht automatisch, sondern erst nach einem Klick auf das Vorhängeschlosssymbol.

Über die schnelle Benutzerumschaltung kann man Verwaltungsaufgaben, die einen privilegierten Benutzer erfordern, parallel zu einem angemeldeten Nichtsdürfer erledigen.

Das wiederholte Legitimieren als Administrator umgeht man, indem man sich für die Dauer von Wartungsarbeiten über die schnelle Benutzerumschaltung (siehe Anmeldeoptionen der Benutzerverwaltung) parallel mit dem Administratorkonto anmeldet. Beachten Sie, dass Programme ihre Konfigurationsdaten immer im Home-Verzeichnis des Benutzers ablegen, mit dessen Rechten sie gestartet wurden, im Falle des parallel angemeldeten Administrators also nicht im Verzeichnis des eingeschränkten Benutzers.

Das Programm "Pseudo [2]" von Brian Hill startet einzelne Programme mit root-Rechten. Davon sollte man allerdings nur sehr sparsam Gebrauch machen. Es kann aber hilfreich sein, das "Terminal" über Pseudo zu starten, etwa um die systemeigenen Konfigurationsdateien in /etc bequem modifizieren zu dürfen. Als Angehöriger der Administratorgruppe würde man dies in einem normal gestarteten Terminal mittels sudo erledigen, als Nicht-Admin darf man den Befehl aber nicht benutzen. Pseudo merkt sich einen Admin-Namen und ein -Passwort auf Wunsch im Schlüsselbund, damit es sie bei weiteren Aufrufen automatisch dort auslesen kann.

Möchte man sich mit einem mit root-Rechten laufenden Terminal nicht anfreunden, kann man alternativ einem eingeschränkten Benutzer die sudo-Erlaubnis erteilen – was aber nur ein Administrator darf. Auf das Verhalten bei GUI-Programmen wirkt sich das nicht aus, man muss nach wie vor ein Administratorkonto angeben. Das Security-Framework, das die Abfrage der Administratordaten regelt, wertet nur die Gruppenzugehörigkeit, nicht aber die sudoers-Datei aus.

Starten Sie im ersten Schritt ein Terminal über Pseudo oder die schnelle Benutzerumschaltung mit erweiterten Rechten. Mit dem Befehl

sudo visudo

und Eingabe des Admin-Kennwortes öffnet der Texteditor vi die Datei /etc/sudoers. Öffnen Sie die Datei nicht direkt mit einem Texteditor – auch nicht mit vi –, das gefährdet die strikte Rechtevergabe. Durch Eingabe von "i" schaltet man vi in den Eingabemodus, "esc" beendet ihn. Eingabe von ":w" speichert die Datei, ":q" beendet den Editor. Die beiden Befehle lassen sich zu ":wq" kombinieren. Die Zeile

adb ALL=(ALL) ALL

im Bereich # User privilege specification verschafft dem Anwender adb uneingeschränkte sudo-Rechte. Er darf ab sofort beliebige Befehle mit sudo absetzen. Sudo kennt flexible Einstellungsmöglichkeiten, die der Artikel "Do you sudo? [3]" und der Befehl man sudoers näher beleuchten.

Bei der Gelegenheit können Sie auch gleich noch ein paar sicherheitssteigernde Zusätze im Bereich # Defaults specification von /etc/sudoers vornehmen:

Defaults !syslog
Defaults logfile=/var/log/sudo.log
Defaults timestamp_timeout=0

Die ersten beiden Zeilen weisen sudo an, Protokolleinträge nicht mehr in /var/log/system.log zu schreiben, sondern in /var/log/sudo.log. Diese Datei dürfen Admins anders als das system.log nicht lesen. Mit der letzten Zeile muss jeder sudo-Aufruf mit einem Passwort bestätigt werden und dieses wird sofort ungültig, und nicht wie in der Default-Einstellung erst fünf Minuten nach dem letzten sudo-Einsatz.

Probleme beim Arbeiten unter einem eingeschränkten Benutzerkonto, etwa mit Programmen, die ihre Konfigurationsdaten ohne Admin-Rechte nicht schreiben dürfen, sind extrem selten und leicht abzustellen. In der Regel genügt es, sein Konto in der Benutzerverwaltung kurzzeitig wieder in den Admin-Status zu erheben, die Konfiguration wie gewünscht anzupassen und sich danach die Administratorrechte wieder zu entziehen. Abmelden oder gar den Rechner neu starten ist nicht notwendig.

Will ein Programm partout nicht ohne Admin-Rechte arbeiten, kann man mit fs_usage herausfinden, woran es scheitert. Möchte man beispielsweise ermitteln, in welche Dateien iTunes schreibt, wenn man dessen Konfigurationsdialog schließt, geht man folgendermaßen vor: Zuerst öffnet man in iTunes den Konfigurationsdialog, dann startet man im Terminal die Dateiüberwachung mit

sudo fs_usage -e -f filesystem | grep -v grep | grep write | grep iTunes

und schließt danach den iTunes-Dialog.

Die Option -e verhindert, dass fs_usage durch sich selbst ausgelöste Dateimodifikationen anzeigt, -f filesystem schränkt den Fokus auf Änderungen am Dateisystem ein. Der erste grep-Aufruf eliminiert durch grep selbst ausgelöste Änderungen, der zweite lässt nur Schreibzugriffe durch. Zu guter Letzt werden alle nicht von iTunes ausgelösten Modifikationen herausgefiltert.

Im abschließenden Schritt gilt es dann, die Rechtevergabe der Dateien zu kontrollieren – entweder im Finder über den Informationsdialog oder im Terminal über ls -al.

Will eine Anwendung um jeden Preis in eine Datei schreiben, für die es nicht die Rechte besitzt, kann man ihr diese mit chmod einräumen. So setzt

chmod u+w datei

für ihren Besitzer das Schreibrecht,

chmod g+w datei

erledigt dies für die Gruppe und

chmod o+w datei

für alle anderen Konten. Für welche Variante man sich entscheidet, hängt davon ab, ob man bereits Besitzer einer Datei ist oder der Besitzergruppe angehört. Unter Umständen muss man dies im Finder anpassen, sollte aber auf alle Fälle darauf achten, dass man anderen Benutzern nicht unnötig Rechte entzieht oder gewährt. Alternativ können sich Anwender auch als Mitglied einer Gruppe eintragen.

Unter Mac OS X 10.4 kann dies die Gruppenverwaltung des kostenlosen "SharePoints" erledigen. Das Programm ist zwar primär für das Freigeben von Verzeichnissen im Netzwerk gedacht, leistet aber auch mit seiner Gruppenadministration in anderen Bereichen gute Hilfestellung. Wer lieber ein Apple-Tool nutzen möchte, greift zum Netinfo Manager oder zum Terminal:

sudo nicl / -append /groups/admin users adb

nimmt adb in die Gruppe admin auf,

sudo nicl / -delete /groups/admin users adb

entfernt ihn wieder und

niutil -resync /

aktiviert die Änderungen.

Mit Mac OS X 10.5 hat Apple den Netinfo Manager in Rente geschickt und durch die Directory Services ersetzt. Seither lautet der Befehl zum Ändern der Gruppenmitgliedschaft

sudo dscl . -append /Groups/admin GroupMembership adb

der Befehl zum Löschen aus einer Gruppe sieht so aus:

sudo dscl . -delete /Groups/admin Groupmembership adb

Das Arbeiten ohne Administratorrechte bereitet beim täglichen Arbeiten so gut wie keine Probleme und verwehrt bösartiger Software den Zugang zum System durch die Hintertür. Aber denken Sie auch an die Vordertür: Da der Installer von Mac OS X Software nur systemweit installieren kann, sind die meisten Anwender darauf konditioniert, eine Installation blind mit ihren Administratordaten abzusegnen. Installieren Sie deshalb nie Software aus einer nicht vertrauenswürdigen Quelle und informieren Sie sich im Zweifelsfall zuvor in Diskussionsforen, ob andere Anwender mit dem Objekt der Begierde eventuell schlechte Erfahrungen gemacht haben. Nur so können Sie sicher sein, dass keine Schädlinge durch die Vordertür hereinschlüpfen. (adb [4]) (adb [5])


URL dieses Artikels:
https://www.heise.de/-1148001

Links in diesem Artikel:
[1] http://www.heise.de/software/download/sandbox/35475
[2] http://www.heise.de/software/download/pseudo/58126
[3] http://www.heise.de/artikel-archiv/ct/2003/8/182_kiosk
[4] mailto:adb%40ct.de?subject=Frage zu 'Sichere Bescheidenheit'
[5] mailto:adb@ct.de