pourquoi sudo fonctionne-t-il sur Linux mais pas sur Android?

22

Je n'ai pas eu la chance d'en lire suffisamment sur Android , Linux ou UNIX pour y répondre moi-même. sudofonctionne sur une machine Linux mais ne fonctionne pas sur Android, sauf si vous rootez l'appareil mobile (par exemple Samsung GT-N8013). Pourquoi le périphérique mobile doit-il être rooté, mais pas l'installation Linux typique?


Le contexte de ma question est lié à /programming/14019698/adb-shell-sudo-on-windows-7/14019726#14019726

(En outre, existe-t-il un moyen pour un programme de demander à s'exécuter comme rootsur Android, de la même manière que vous avez une escalade de privilèges pour "exécuter en tant qu'administrateur" sous Windows? Si vous pensez que cette question devrait être sur son propre fil, je peux créer un)

T. Webster
la source
Il devrait être dans la sudoersliste à obtenir sudo. Ce n'est pas dans Android et Ubuntu
user3539

Réponses:

20

sudoest une application normale avec le bit suid. Cela signifie que pour l'utiliser, sudoil doit être installé sur le système. Tous les systèmes Linux ne sont pas sudoinstallés par défaut comme par exemple Debian.

La plupart des systèmes Android sont destinés aux utilisateurs finaux qui n'ont pas besoin de connaître les composants internes d'Android (c'est-à-dire que chaque application Android s'exécute sous son propre utilisateur), il n'est donc pas nécessaire de fournir un moyen interactif pour un utilisateur final d'exécuter une commande en tant que système administrateur.

En général, vous pouvez utiliser suau lieu de sudopour exécuter une commande en tant qu'utilisateur différent, mais vous devez connaître les informations d'identification de l'utilisateur cible pour su(car sudovous devez connaître les informations d'identification de l'utilisateur exécutant la commande)

Ulrich Dangel
la source
9

sudon'est pas universel . Ce n'est pas parce qu'il existe sur la distribution Linux particulière que vous utilisez qu'il est disponible sur tous les systèmes d'exploitation qui utilisent également le noyau Linux.

Warren Young
la source
8

Le téléphone doit être enraciné pour que l' rootutilisateur installe sudo(ou toute autre application). Sinon, il serait installé en tant qu'utilisateur "standard" et n'aurait pas un accès root.

Quant à la deuxième question, une fois sudoinstallé sur le téléphone rooté, d'après mon expérience, les applications qui en ont besoin le demandent simplement et vous obtenez une invite contextuelle.

Aaron D. Marasco
la source
5

Vous touchez un point critique de votre question: un enracinement IS d'installation Linux typique: vous démarrez à partir d'un Live CD et écrasez le secteur de démarrage du disque dur pour charger votre propre code.

C'est juste que l'enracinement d'un PC est moins difficile que sur un appareil semi-intégré comme un téléphone, de sorte que les gens ont tendance à oublier que l'installation d'un deuxième système d'exploitation avec double démarrage est essentiellement l'enracinement (la seule chose qui vous combattra sur ce point est le BIOS avec démarrage sécurisé mais qui peut être facilement réinitialisé).

Et le système d'exploitation sur l'appareil Android ne vient tout simplement pas avec la sudocommande (ou similaire) installée.

monstre à cliquet
la source