(weitergeleitet von Main.Root)

root werden:

<div id='tutorialrahmen'> Was wird gemacht?: Dargestellt wird, was die Rolle des root beinhaltet und wie man sie einnimmt.
Zielgruppe: (ambitionierte) Anfänger bis Fortgeschrittene
</div>


Das Kleingedruckte am Anfang

Auch wenn viele die Benutzer-Rolle root mit der Rolle eines Administrators (Mitglied derGruppe admin oder, unter anderen Systemen, der Gruppe wheel), und diese leider häufig wiederum mit der Person, die das Passwort kennt, verwechseln, so ist ist doch ein gewaltiger Unterschied zwischen diesen Rollen. Kein vernünftiger Bankdirektor würde nachts den Schlüssel zum Safe fröhlich aller Welt zeigen, während er sich in eher dubiosen Gegenden aufhält. Dass manche den root-Account aktivieren und dann auch noch damit surfen oder nur mal schnell eine Datei runterladen steht dem in nichts nach! Man sieht das Ergebnis jeden Tag unter Windows...

Was hier propagiert wird, ist eine Realisierung des sogenannten Rollen-basierten Zugangs zur Systemverwaltung, der vor allem für wichtige Systeme unerlässlich ist; wie weit man das auf seinem Rechner, der vielleicht noch nicht mal am Netz hängt, umsetzt, ist eine ganz andere Sache. Daher in Kurzfassung: Den root account muss man nicht aktivieren.

Wer Lust hat, die Angriffe von Skript-Kiddies sich mit anzusehen, kann mittels HenWen bzw. Snort sich alle Verbindungen ins und vom Netz untersuchen lassen. Die meisten Wörterbuchangriffe fallen aber auch schon im secure.log auf: Mittels sudo grep root /var/log/secure.log kann man sich alle Versuche von root sich anzumelden ausgeben lassen. Eine Zeile
... com.apple.SecurityServer: authinternal failed to authenticate user root
spricht meist Bände. ...

Im Terminal

Es gibt zwei Standard-Möglichkeiten innerhalb des Terminals eine root shell zu erhalten, in der man gänzlich ohne Einschränkungen und Sicherungen arbeiten kann.

Die sudo-Variante

Mittels eines Voranstellens von sudo, kann man einen Befehl mit den Rechten eines anderen Benutzers ausführen. Wer hier welche Befehle mit welchen Rechten ausführen darf wird in der so genannten sudoers-Liste (/etc/sudoers) geregelt, von der man aber unter Mac OS X die Finger lassen sollte. Sollte man dennoch das Bedürfniss haben was zu ändern, muss dies mit dem Befehl visudo machen. In einem Standard Mac OS X System dürfen root und Administratoren (Gruppe admin) alles, als jeder Benutzer und überall, d.h. auch auf jedem untergeordneten Rechner (root ALL=(ALL) ALL und %admin ALL=(ALL) ALL.) Man muss den ersten solchen Befehl in einer kurzen Zeitspanne mit seinem Passwort allerdings bestätigen. Im Umkehrschluss dürfen die anderen nur mit ihren eigenen Rechten agieren.

Ein Administrator kann somit durch sudo bash eine bash Shell starten. Alle Programme die in dieser gestartet werden haben keinerlei Einschränkungen der Rechte. Allgemein sollte man aber mittels sudo -s eine Standard-Shell bevorzugen. Unter Mac OS X 10.3 üblicherweise ebenfalls die bash (echo $SHELL). Analog gingen natürlich auch sudo open -a .... Den Möglichkeiten sind nur Vernunftsgrenzen gesetzt.

Die su-Variante

Der Befehl "su <username>" erlaubt es, sich in einer Kommandozeilenumgebung eine andere Identität zu geben. Gibt man keinen Usernamen an, d.h. su, so erhält man volle root-Rechte, sofern root sich einloggen kann. (su steht fuer Substitute User). Für root gibt es keine Enschränkungen bzgl. des Gebrauchs von su. Somit erhält root mit su eine root-shell ohne Passwortabfrage; mittels su <username> kann er jede beliebiege Identität annehmen.

Um mit su zu root zu werden muss man root kein Passwort setzen. Im Allgeimeinen sollte man das auch unterlassen. Jeder äußere Angreifer schießt auf den root-account; um einen Administrator-Account zu knacken, muss man diesen nämlich erst einmal kennen.

Mittels su kann man eine root-Shell erhalten, sofern root sich einloggen kann. Dann gehen aber auf allen anderen Diensten, die aktiviert wurden, root Zugriffe: ssh root@localhost, ftp root@localhost, AFP, ...

Die sudo su-Variante

Nach dem oben gesagten, kann sich nun jeder überlegen, daß mittels der Kombination sudo su jeder Administrator eine root-shell erhalten kann, die er mit seinem eigenen Passwort bestätigen muß. Mittels sudo su <username> kann jeder Administrator jede andere Identität annehmen.

Innerhalb des Finders

Werden irgendwelche Updates fällig, so fragt der Finder nach dem Namen und dem Passwort eines Administrators. In einer schönen Verpackung läuft hier genau das Pendant zu sudo ab. Da so ziemlich alle relevanten Programme diese Verkapselung beherschen, reicht es, wenn man auch einen Administrator-account hat. Man muss also noch nicht einmal als Administrator angemeldet sein!

Will man aber dennoch ein Programm mit den Rechten von root starten, so kann man zum Beispiel mittels

sudo open -a /Applications/TextEdit.app

in einem Terminal-Fenster eine Anwendung, hier TextEdit, starten, die mit allen Rechten läuft. Da Mac OS X nur eine grafische Schnittstelle kennt, werden diese Programme ausserdem immer dem aktiven Benutzer angezeigt.

Wer jetzt noch immer nicht überzeugt ist und weiß was er tut, kann zum Beispiel mittels des Programms NetInfoManager aus den Dienstprogramme root ein Passwort und damit die Möglichkeit zum Einloggen geben: Unter "Sicherheit" kann man ein Root-Kennwort vergeben, welches sich von Eurem eigenen Kennwort unterscheiden sollte! Dort kann man root auch wieder deaktivieren.

Allgemein, wird ein account dadurch aktiviert/deaktiviert, dass er ein gültiges/ungültiges Passwort erhält. Üblicherweise stellt man ein '*' dem hash-code des Passworts in der shadow Liste voran. Das geht natürlich auch mittels nicl.

Links


Zuletzt geändert am 12.09.2017 09:14 Uhr von 101651113 ( Besuche)

© 2004 – 2024 ApfelWiki

Impressum - Datenschutz

cb