perché sudo funziona su Linux ma non su Android?


22

Non ho avuto la possibilità di leggere abbastanza su Android , Linux o UNIX per rispondere da solo. sudofunziona su una macchina Linux ma non funziona su Android a meno che non si esegua il root del dispositivo mobile (ad esempio Samsung GT-N8013). Perché il dispositivo mobile richiede il root, ma non la tipica installazione Linux?


Il contesto della mia domanda è correlato a /programming/14019698/adb-shell-sudo-on-windows-7/14019726#14019726

(Inoltre, esiste un modo per chiedere a un programma di essere eseguito come rootsu Android, allo stesso modo in cui si ha l'escalation dei privilegi per "eseguire come amministratore" su Windows? Se si pensa che questa domanda dovrebbe essere sul proprio thread, posso creare uno)


Dovrebbe essere in sudoerselenco per ottenere sudo. Non è in Android un Ubuntu
user3539

Risposte:


20

sudoè un'applicazione normale con il bit di suid. Ciò significa che per sudopoterlo utilizzare deve essere installato sul sistema. Non tutti i sistemi Linux sono stati sudoinstallati per impostazione predefinita come ad esempio Debian.

La maggior parte dei sistemi Android è destinata agli utenti finali che non hanno bisogno di conoscere gli interni di Android (ovvero ogni applicazione Android viene eseguita con il proprio utente), quindi non è necessario fornire un modo interattivo per un utente finale di eseguire un comando come sistema amministratore.

In generale è possibile utilizzare suinvece di sudoeseguire un comando come un altro utente, ma è necessario conoscere le credenziali dell'utente di destinazione per su(poiché sudoè necessario conoscere le credenziali dell'utente che esegue il comando)


9

sudonon è universale . Solo perché esiste sulla particolare distribuzione Linux che usi, non significa che sia disponibile su tutti i sistemi operativi che usano anche il kernel Linux.


8

Per poter rootinstallare l' utente sudo(o qualsiasi altra app) è necessario eseguire il root del telefono . Altrimenti verrebbe installato come utente "standard" e non avrebbe accesso root.

Per quanto riguarda la seconda domanda, una volta sudoinstallata sul telefono root, nella mia esperienza, le app che ne hanno bisogno lo richiedono semplicemente e viene visualizzato un messaggio popup.


5

Tocca un punto critico della tua domanda: una tipica installazione di Linux per il rooting IS: fai il boot da un Live CD e sovrascrivi il settore di avvio del disco rigido per caricare il tuo codice.

È solo che il rooting di un PC è meno arduo rispetto a un dispositivo semi-incorporato come un telefono, quindi le persone tendono a dimenticare che l'installazione di un secondo sistema operativo con doppio avvio è essenzialmente il rooting (l'unica cosa che ti combatterà su questo è il BIOS con avvio sicuro ma che può essere facilmente ripristinato).

E il sistema operativo sul dispositivo Android non viene fornito con il sudocomando (o simile) installato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.