Zum Inhalt springen

Root: Unterschied zwischen den Versionen

62 Bytes hinzugefügt ,  13. Oktober 2018
(zurückgesetzt)
Markierungen: Mobile Bearbeitung Mobile Web-Bearbeitung
((zurückgesetzt))
Markierungen: Mobile Bearbeitung Mobile Web-Bearbeitung Visuelle Bearbeitung
(18 dazwischenliegende Versionen von 9 Benutzern werden nicht angezeigt)
Zeile 6: Zeile 6:


== Root bei Unix-Systemen ==
== Root bei Unix-Systemen ==
Das Benutzerkonto 'root' wird bei einem Unix-artigen System, wie z. B. BSD oder Linux, bei der Installation des Betriebssystems standardmäßig angelegt. Dieser Benutzer ist nicht für die tägliche Arbeit mit dem System gedacht, da aus seiner Verwendung und seinen Rechte-mäßig weit eingeräumten Möglichkeiten eine ebenso große Gefahr entsteht. Aus diesem Grund wird ''root'' i.d.R. nur verwendet, wenn Verwaltungsaufgaben am System durchgeführt werden müssen, die die Rechte des Benutzers erfordern.
Das Benutzerkonto 'root' wird bei einem Unix-artigen System, wie z. B. BSD oder Linux, bei der Installation des Betriebssystems standardmäßig angelegt. Dieser Benutzer ist nicht für die tägliche Arbeit mit dem System gedacht, da aus seiner Verwendung und seinen Rechte-mäßig weit eingeräumten Möglichkeiten eine ebenso große Gefahr entsteht. Aus diesem Grund wird ''root'' i.d.R. nur verwendet, wenn Verwaltungsaufgaben am System durchgeführt werden müssen, für die die Rechte eines normalen Benutzers nicht ausreichend sind.


=== Wechseln der Identität ===
=== Wechseln der Identität ===
Unter Ubuntu kann man die Identität jederzeit, die Root-Rechte erfordern, wechseln. Aktionen, die Root-Recht verlangen, sind z. B. die Installation eines Programms oder die Aktualisierung eines Treibers für ein neues Gerät. Aber auch Eingriffe von Schadsoftware in das System verlangen Root-Recht. Daraus lässt sich schließen, dass der Benutzer nach dem Passwort für den Benutzer ''root'' gefragt wird. Um unberechtigte Zugriffe zu vermeiden, sollte man das Root-Passwort nur dann eingeben, wenn man aktiv ein Programm gestartet hat, welches dieses Recht erfordert. Im Terminal ([[Shell]]) wechselt man in den root, indem man vor dem eigentlichen Befehl ein "su" (für: superuser) eingibt. Anschließend wird eine interaktive Shell des Benutzers root gestartet. Wenn man nur einen Befehl mit root-Recht ausführen will, stellt man vor dem betreffenden Befehl ''sudo'' voran.
Unter Ubuntu kann man die Identität (den Benutzer) jederzeit wechseln. Aktionen, die Root-Recht verlangen, sind z. B. die Installation eines Programms oder die Aktualisierung eines Treibers für ein neues Gerät. Aber auch viele Eingriffe von Schadsoftware in das System verlangen Root-Recht. Wenn nicht schon als root-Benutzer gearbeitet wird (was vermieden werden sollte), wird dann nach dem Passwort für den Benutzer ''root'' gefragt. Um unberechtigte Zugriffe zu vermeiden, sollte das Root-Passwort nur eingeben werden, wenn aktiv ein Programm gestartet wurde, welches dieses Recht erfordert. Im Terminal ([[Shell]]) wechselt man in den root, indem man vor dem eigentlichen Befehl ein "su" (für: '''s'''ubstitute '''u'''ser identity, zu Deutsch: ersetze Benutzeridentität) eingibt. Anschließend wird eine interaktive Shell des Benutzers root gestartet. Wenn nur ein Befehl mit root-Recht ausgeführt werden soll, stellt man dem betreffenden Befehl ''sudo '' voran.


== Root unter Android ==
== Root unter Android ==
Da [[Android]] unter Android {{Android|5.0}} keine Benutzerkontenverwaltung besitzt, wie sie von PC Betriebssystemen bekannt ist, hat der Benutzer somit keine wirkliche Identität, die er wechseln kann. Er wechselt von Anwendung zu Anwendung, denen die erforderlichen Rechte bei der Installation zugesagt wurden. (Ab Android {{Android|6.0}} muss der Nutzer den Apps die Berechtigungen geben, bevor diese sie nutzen können) Der Benutzer übernimmt also die Identität  Rechte von den einzelnen Anwendungen. Für jede [[App]] legt die [[Dalvik VM]] eine eigene User ID (UID) an<ref>http://www.zdnet.de/41553061/android-architektur-wieviel-linux-steckt-in-googles-os/</ref>, dem grundsätzlich nur Schreib- und Leserechte auf den von der App erstellten Ordner im /data/data Verzeichnis gewährt werden.
Da [[Android]] unter Android {{Android|5.0}} keine Benutzerkontenverwaltung besitzt, wie sie von PC Betriebssystemen bekannt ist, hat der Benutzer somit keine wirkliche Identität, die er wechseln kann. Er wechselt von Anwendung zu Anwendung, denen die erforderlichen Rechte bei der Installation zugesagt wurden. (Ab Android {{Android|6.0}} muss der Nutzer den Apps die Berechtigungen geben, bevor diese sie nutzen können) Der Benutzer übernimmt also die Identität  Rechte von den einzelnen Anwendungen. Für jede [[App]] legt die [[Dalvik VM]] eine eigene User ID (UID) an<ref>http://www.zdnet.de/41553061/android-architektur-wieviel-linux-steckt-in-googles-os/</ref>, der grundsätzlich nur Schreib- und Leserechte auf den von der App erstellten Ordner im /data/data Verzeichnis gewährt werden.


=== Rechteverwaltung unter Android ===
=== Rechteverwaltung unter Android ===
[[File:Superuser.png|thumb|Anfrage nach Superuser-Rechten beim [[Wildfire|HTC Wildfire]]]]
[[File:Superuser.png|thumb|Anfrage nach Superuser-Rechten beim [[Wildfire|HTC Wildfire]]]]
Da Android auf dem Linux-Kernel aufbaut, gilt es als ein relativ sicheres Betriebssystem. Diese hohe Sicherheit wird beispielsweise durch die Rechteverwaltung in Android erreicht. Um eine App installieren zu können, müssen vor dem Herunterladen aus dem [[Google Play Store]] bestimmte Rechte gewährt werden, die die App zum Arbeiten benötigt. Jede App kann nur auf die JoTelefonfunktionen zugreifen, die sie auch bei der Installation oder beim Update angegeben hat. Der Programmierer legt seiner App eine Datei namens '''AndroidManifest.xml''' bei. Diese Datei beinhaltet neben den Informationen zur App auch die Berechtigungen, die diese benötigt. Aus dieser Datei übernimmt Android und der Play Store dann die Berechtigungen, die der Benutzer bestätigen muss. Nehmen wir also an, ein Programmierer für Schadsoftware will, dass die App Zugriff auf das Senden und Empfangen von SMS hat. Dann muss dieser Programmierer dieses Recht in die AndroidManifest.xml eintragen, damit es im Telefon gewährt wird. Es ist also theoretisch nicht möglich, einer App eine Berechtigung zu geben, ohne dieses vorher in die Datei festgelegt zu haben. Durch das Durchlesen der benötigten Rechte kann der Benutzer dann entscheiden, ob er diese App installieren möchte oder es besser bleiben lässt.
Da Android auf dem Linux-Kernel aufbaut, gilt es als ein relativ sicheres Betriebssystem. Diese hohe Sicherheit wird beispielsweise durch die Rechteverwaltung in Android erreicht. Um eine App installieren zu können, müssen vor dem Herunterladen aus dem [[Google Play Store]] bestimmte Rechte gewährt werden, die die App zum Arbeiten benötigt. Jede App kann nur auf die Telefonfunktionen zugreifen, die sie auch bei der Installation oder beim Update angegeben hat. Der Programmierer legt seiner App eine Datei namens '''AndroidManifest.xml''' bei. Diese Datei beinhaltet neben den Informationen zur App auch die Berechtigungen, die diese benötigt. Aus dieser Datei übernimmt Android und der Play Store dann die Berechtigungen, die der Benutzer bestätigen muss. Nehmen wir also an, ein Programmierer für Schadsoftware will, dass die App Zugriff auf das Senden und Empfangen von SMS hat. Dann muss dieser Programmierer dieses Recht in die AndroidManifest.xml eintragen, damit es im Telefon gewährt wird. Es ist also theoretisch nicht möglich, einer App eine Berechtigung zu geben, ohne dieses vorher in der Datei festgelegt zu haben. Durch das Durchlesen der benötigten Rechte kann der Benutzer dann entscheiden, ob er diese App installieren möchte oder es besser bleiben lässt. So können verdächtige Berechtigungen in der App identifiziert und ein sicheres System gewährleistet werden.
So können verdächtige Berechtigungen in der App identifiziert und ein sicheres System gewährleistet werden.


Mit Hilfe der in Android {{Android|4.3}} eingeführten Funktion [[App Ops]] ist es möglich, Berechtigungen einer installierten App zu entziehen.
Mit Hilfe der in Android {{Android|4.3}} eingeführten Funktion [[App Ops]] ist es möglich, Berechtigungen einer installierten App zu entziehen.


=== Root für Android ===
=== Root für Android ===
Die ''AndroidManifest.xml'' besitzt allerdings keine Möglichkeit, einer App die Rechte des Benutzers ''root'' zu gewähren. Rechte des root werden bei Android, wie auch bei anderen Unix-ähnlichen Systemen, mit der Dateiberechtigung ''setuid'' realisiert<ref>http://www.androidnext.de/news/android-4-3-der-tod-der-root-rechte/</ref><ref>http://cjix.info/blog/featured/how-rooting-works-a-technical-explanation-of-the-android-rooting-process/</ref>. Dieses Bit steuert, ob eine ausführbare Datei mit den Rechten des ausführenden Nutzers (beispielsweise einem für eine App angelegten Nutzer) gestartet wird oder mit den Rechten des Erstellers (bei Systemanwendungen ''root''). Benötigt eine App ''root''-Rechte, bedeutet das meist nicht mehr, als dass diese App ein anderes Programm mit root-Rechten ausführen will. Das funktioniert, indem die App die gewünschte ausführbare Datei über die Binärdatei ''su'' (im Ordner ''/system/xbin'') aufruft, welche als einzige im System das Recht hat, den Befehl setuid() zum Ändern des setuid Bits auszuführen. Damit der Nutzer weiterhin die Kontrolle und Übersicht hat, welche App berechtigt ist, Befehle über ''su'' auszuführen, gibt es eine App zur Verwaltung dieser Rechte. Eine dieser Apps ist beispielsweise {{MarketLink|eu.chainfire.supersu|SuperSU}}. Startet der Nutzer eine [[App]], die ''root''-Rechte verlangt, so wird er gefragt, ob er ihr diese gewähren möchte - oder nicht. Die Auswahl lässt sich von der SuperUser-[[App]] temporär oder dauerhaft für diese App speichern. In den Einstellungen ist es ebenfalls möglich, nachträglich die berechtigten Apps zu ändern. Ein ungewollter Zugriff auf einen Befehl über ''su'' (und zwangsläufig mit ''root''-Rechten) wird somit erschwert.
Die ''AndroidManifest.xml'' besitzt allerdings keine Möglichkeit, einer App die Rechte des Benutzers ''root'' zu gewähren. Rechte des root werden bei Android, wie auch bei anderen Unix-ähnlichen Systemen, mit der Dateiberechtigung ''setuid'' realisiert<ref>http://www.androidnext.de/news/android-4-3-der-tod-der-root-rechte/</ref><ref>http://cjix.info/blog/featured/how-rooting-works-a-technical-explanation-of-the-android-rooting-process/</ref>. Dieses Bit steuert, ob eine ausführbare Datei mit den Rechten des ausführenden Nutzers (beispielsweise einem für eine App angelegten Nutzer) gestartet wird oder mit den Rechten des Erstellers (bei Systemanwendungen ''root''). Benötigt eine App ''root''-Rechte, bedeutet das meist nicht mehr, als dass diese App ein anderes Programm mit root-Rechten ausführen will. Das funktioniert, indem die App die gewünschte ausführbare Datei über die Binärdatei ''su'' (im Ordner ''/system/xbin'') aufruft, welche als einzige im System das Recht hat, den Befehl setuid() zum Ändern des setuid Bits auszuführen. Damit der Nutzer weiterhin die Kontrolle und Übersicht hat, welche App berechtigt ist, Befehle über ''su'' auszuführen, gibt es eine App zur Verwaltung dieser Rechte. Eine dieser Apps ist beispielsweise {{MarketLink|eu.chainfire.supersu|SuperSU}}. Startet der Nutzer eine [[App]], die ''root''-Rechte verlangt, so wird er gefragt, ob er ihr diese gewähren möchte - oder nicht. Die Auswahl lässt sich von der SuperUser-[[App]] temporär oder dauerhaft für diese App speichern. In den Einstellungen ist es ebenfalls möglich, nachträglich die berechtigten Apps zu ändern. Ein ungewollter Zugriff auf einen Befehl über ''su'' (und damit mit ''root''-Rechten) wird somit erschwert.


Selbstverständlich muss der Benutzer immer kritisch gegenüber Anfragen nach ''root''-Rechten stehen, um unerwünschte Effekte zu vermeiden.
Selbstverständlich muss der Benutzer immer kritisch Anfragen nach ''root''-Rechten gegenüberstehen, um unerwünschte Effekte zu vermeiden.


=== Wofür benötigt man Root? ===
=== Wofür benötigt man Root? ===
Zeile 37: Zeile 36:
Besonders aus Gründen des Datenschutzes ist das Rooten sinnvoll, denn ein root-Zugang ermöglicht es, kritische Rechte für eine App zu blockieren (z. b. Lokalisierungsfunktionen oder das Auslesen der Kontakte). Ebenso lassen sich Werbeblocker installieren, welche die Bannerwerbung in Apps unterbinden.
Besonders aus Gründen des Datenschutzes ist das Rooten sinnvoll, denn ein root-Zugang ermöglicht es, kritische Rechte für eine App zu blockieren (z. b. Lokalisierungsfunktionen oder das Auslesen der Kontakte). Ebenso lassen sich Werbeblocker installieren, welche die Bannerwerbung in Apps unterbinden.


Entgegen landläufiger Meinung ist für das Installieren einer Custom ROM nicht zwingend root erforderlich. Lediglich der {{MarketLink|com.koushikdutta.rommanager|Rom Manager}}, welcher in vielen Anleitungen genutzt wird, benötigt root zum Installieren des [[Recovery|Recoveries]]. Zum Flashen eines Custom ROM wird lediglich ein [[Bootloader Unlock|entsperrter Bootloader]] benötigt.
Entgegen landläufiger Meinung ist für das Installieren eines Custom ROM nicht zwingend root erforderlich. Lediglich der {{MarketLink|com.koushikdutta.rommanager|Rom Manager}}, welcher in vielen Anleitungen genutzt wird, benötigt root zum Installieren des [[Recovery|Recoveries]]. Zum Flashen eines Custom ROM wird lediglich ein [[Bootloader Unlock|entsperrter Bootloader]] benötigt.


== Das Rooten ==
== Das Rooten ==
Das Rooten an sich ist eine relativ einfache Angelegenheit und wird durch die Installation, bzw. Kopieren der su-binary in den Ordner /system/xbin erreicht. Die App SuperUser dient nach der Installation der Verwaltung dieser Binary. Die Binary kann man sich kostenfrei [http://androidsu.com/superuser/ hier] herunterladen und zum Beispiel mit dem [[ClockWorkMod]]-Recovery installieren. Problematisch wird es, wenn man als Nutzer keine Schreibrechte auf die /system [[Partition]] hat. In dem Fall muss man gerätespezifisch recherchieren ob es eine Möglichkeit gibt Schreibrechte auf diese Partition zu erhalten. Dies wird irrtümlich immer wieder als "Rooten" bezeichnet, obwohl der Prozess im wesentlichen nur die oben genannte Installation beschreibt.
Das Rooten an sich ist eine relativ einfache Angelegenheit und wird durch die Installation, bzw. Kopieren der su-binary in den Ordner /system/xbin erreicht. Die App SuperUser dient nach der Installation der Verwaltung dieser Binary. Die Binary kann man sich kostenfrei [https://chainfire.eu/ hier] herunterladen und zum Beispiel mit dem [[ClockWorkMod]]-Recovery installieren. Problematisch wird es, wenn man als Nutzer keine Schreibrechte auf die /system [[Partition]] hat. In dem Fall muss man gerätespezifisch recherchieren, ob es eine Möglichkeit gibt, Schreibrechte auf diese Partition zu erhalten. Dies wird irrtümlich immer wieder als "Rooten" bezeichnet, obwohl der Prozess im wesentlichen nur die oben genannte Installation beschreibt.


=== Wie erkenne ich, ob ich Root-Rechte habe? ===
=== Wie erkenne ich, ob ich Root-Rechte habe? ===
Nachdem man sein Geräte "gerootet" hat, möchte man natürlich gerne genau wissen, ob die diversen root-Methoden für das entsprechende Gerät auch funktioniert haben. Um dies zu überprüfen, ist es am einfachsten, sich eine App aus dem Play Store herunter zu laden, welche (für einzelne Funktionen) root-Rechte benötigt und diese dann ausführt. Dies kann zum Beispiel ein Datei-Explorer sein, welcher auch auf das Dateisystem mit erhöhten Rechten zugreifen kann (siehe [[Root-Explorer]]). Auch die App {{MarketLink|com.joeykrim.rootcheck|Root Checker}} ist dafür eine beliebte und gute Möglichkeit. Die einzige Funktion dieser App ist es, anzuzeigen, ob das Gerät gerootet ist oder nicht.
Nachdem man sein Gerät "gerootet" hat, möchte man natürlich gerne wissen, ob die angewendete root-Methode funktioniert hat. Um dies zu überprüfen, ist es am einfachsten, sich eine App aus dem Play Store herunter zu laden, welche (für einzelne Funktionen) root-Rechte benötigt und diese dann ausprobiert. Dies kann zum Beispiel ein Datei-Explorer sein, welcher auch auf das Dateisystem mit erhöhten Rechten zugreifen kann (siehe [[Root-Explorer]]). Auch die App {{MarketLink|com.joeykrim.rootcheck|Root Checker}} ist dafür eine beliebte und gute Möglichkeit. Die einzige Funktion dieser App ist es anzuzeigen, ob das Gerät gerootet ist oder nicht.


=== systemless Root ===
=== systemless Root ===
13

Bearbeitungen

Cookies helfen uns bei der Bereitstellung von Android Wiki. Durch die Nutzung von Android Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.