¿Por qué sudo funciona en Linux pero no en Android?

22

No he tenido la oportunidad de leer lo suficiente sobre Android , Linux o UNIX para responder esto yo mismo. sudofunciona en una máquina Linux pero no funciona en Android a menos que arraigue el dispositivo móvil (por ejemplo, Samsung GT-N8013). ¿Por qué el dispositivo móvil requiere ser rooteado, pero no la instalación típica de Linux?


El contexto de mi pregunta está relacionado con /programming/14019698/adb-shell-sudo-on-windows-7/14019726#14019726

(Además, ¿hay alguna forma de que un programa solicite ejecutarse como rooten Android, de la misma manera que tiene una escalada de privilegios para "ejecutar como administrador" en Windows? Si cree que esta pregunta debería estar en su propio hilo, puedo crear uno)

T. Webster
fuente
Debe estar en la sudoerslista para obtener sudo. No está en Android ni Ubuntu
user3539

Respuestas:

20

sudoes una aplicación normal con el bit suid. Esto significa que para poder usarlo sudodebe estar instalado en el sistema. No todos los sistemas Linux se han sudoinstalado por defecto, como por ejemplo Debian.

La mayoría de los sistemas Android están dirigidos a usuarios finales que no necesitan conocer el funcionamiento interno de Android (es decir, cada aplicación de Android se ejecuta bajo su propio usuario), por lo que no es necesario proporcionar una forma interactiva para que un usuario final ejecute un comando como sistema administrador.

En general, puede usar en sulugar de sudoejecutar un comando como un usuario diferente, pero debe conocer las credenciales para el usuario de destino su( sudoya que debe conocer las credenciales del usuario que ejecuta el comando)

Ulrich Dangel
fuente
9

sudoNo es universal . El hecho de que exista en la distribución particular de Linux que usa no significa que esté disponible en todos los sistemas operativos que también usan el kernel de Linux.

Warren Young
fuente
8

El teléfono debe estar rooteado para que el rootusuario instale sudo(o cualquier otra aplicación). De lo contrario, se instalaría como usuario "estándar" y no tendría acceso de root.

En cuanto a la segunda pregunta, una vez que sudose instala en el teléfono rooteado, en mi experiencia, las aplicaciones que lo necesitan simplemente lo solicitan y aparece un mensaje emergente.

Aaron D. Marasco
fuente
5

Toca un punto crítico en su pregunta: una instalación típica de Linux está enraizada: arranca desde un CD en vivo y sobrescribe el sector de arranque del disco duro para cargar su propio código.

Es solo que rootear una PC es menos arduo que en un dispositivo semi embebido como un teléfono, por lo que la gente tiende a olvidar que instalar un segundo sistema operativo con arranque dual es esencialmente rootear (lo único que lo enfrentará en esto es el BIOS con arranque seguro pero que se puede restablecer fácilmente).

Y el sistema operativo en el dispositivo Android simplemente no viene con el sudocomando (o similar) instalado.

monstruo de trinquete
fuente