Warum funktioniert sudo unter Linux, aber nicht unter Android?

22

Ich hatte nicht die Gelegenheit, genug über Android , Linux oder UNIX zu lesen , um dies selbst zu beantworten. sudoFunktioniert auf einem Linux-Computer, aber nicht auf Android, es sei denn, Sie rooten das mobile Gerät (z. B. Samsung GT-N8013). Warum muss das mobile Gerät gerootet sein, aber nicht die typische Linux-Installation?


Der Kontext meiner Frage bezieht sich auf /programming/14019698/adb-shell-sudo-on-windows-7/14019726#14019726

( rootGibt es auch eine Möglichkeit für ein Programm, die Ausführung unter Android zu fordern , genauso wie Sie es bei Windows mit einer Eskalation der Berechtigungen für die Ausführung als Administrator haben? Wenn Sie der Meinung sind, dass diese Frage in einem eigenen Thread gestellt werden sollte, kann ich sie erstellen eins)

T. Webster
quelle
Es sollte in der sudoersListe zu bekommen sein sudo. Es ist nicht in Android ein Ubuntu
user3539

Antworten:

20

sudoist eine normale anwendung mit dem suid bit. Das heißt, um es nutzen zu sudokönnen, muss es auf dem System installiert sein. Nicht alle Linux-Systeme haben sudostandardmäßig installiert, wie zum Beispiel Debian.

Die meisten Android-Systeme richten sich an Endbenutzer, die die Interna von Android nicht kennen müssen (dh, jede Android-Anwendung wird unter einem eigenen Benutzer ausgeführt). Daher ist es nicht erforderlich, einem Endbenutzer eine interaktive Möglichkeit zur Ausführung eines Befehls als System bereitzustellen Administrator.

Im Allgemeinen können Sie einen Befehl verwenden, suanstatt ihn sudoals anderer Benutzer auszuführen. Sie müssen jedoch die Anmeldeinformationen für den Zielbenutzer kennen su( sudoSie müssen die Anmeldeinformationen des Benutzers kennen, der den Befehl ausführt).

Ulrich Dangel
quelle
9

sudoist nicht universell . Nur weil es in der von Ihnen verwendeten Linux-Distribution vorhanden ist, bedeutet dies nicht, dass es auf allen Betriebssystemen verfügbar ist, die auch den Linux-Kernel verwenden.

Warren Young
quelle
8

Das Telefon muss gerootet sein, damit der rootBenutzer es installiert sudo(oder eine andere App). Andernfalls wird es als "Standard" -Benutzer installiert und hat keinen Root-Zugriff.

Was die zweite Frage betrifft, einmal sudoauf dem verwurzelten Telefon installiert, fordern die Apps, die es benötigen, es meiner Erfahrung nach einfach an, und Sie erhalten eine Popup-Eingabeaufforderung.

Aaron D. Marasco
quelle
5

Sie berühren einen kritischen Punkt in Ihrer Frage: Ein typisches Linux-Installations-IS-Rooting: Sie booten von einer Live-CD und überschreiben den Bootsektor der Festplatte, um Ihren eigenen Code zu laden.

Es ist nur so, dass das Rooten eines PCs weniger anstrengend ist als auf einem semi-eingebetteten Gerät wie einem Telefon, so dass die Leute häufig vergessen, dass das Installieren eines zweiten Betriebssystems mit Dual-Boot im Wesentlichen das Rooten ist (das einzige, mit dem Sie dagegen ankämpfen können, ist das BIOS Secure Boot, kann aber leicht zurückgesetzt werden).

Und das Betriebssystem auf dem Android-Gerät wird mit sudoinstalliertem Befehl (oder ähnlichem) einfach nicht ausgeliefert .

Ratschenfreak
quelle