Por que o sudo funciona no Linux, mas não no Android?

22

Não tive a chance de ler o suficiente sobre Android , Linux ou UNIX para responder a isso sozinho. sudofunciona em uma máquina Linux, mas não funciona no Android, a menos que você faça root no dispositivo móvel (por exemplo, Samsung GT-N8013). Por que o dispositivo móvel precisa estar enraizado, mas não a instalação típica do Linux?


O contexto da minha pergunta está relacionado a /programming/14019698/adb-shell-sudo-on-windows-7/14019726#14019726

(Além disso, existe alguma maneira de um programa solicitar a execução como rootno Android, da mesma maneira que você tem escalação de privilégios para "executar como administrador" no Windows? Se você acha que essa pergunta deve ter seu próprio encadeamento, eu posso criar 1)

T. Webster
fonte
Deve estar na sudoerslista para obter sudo. Não é no Android um Ubuntu
user3539

Respostas:

20

sudoé uma aplicação normal com o bit suid. Isso significa que, para usá- sudolo, ele deve estar instalado no sistema. Nem todos os sistemas Linux foram sudoinstalados por padrão, como por exemplo o Debian.

A maioria dos sistemas Android é direcionada para usuários finais que não precisam conhecer o interior do Android (ou seja, cada aplicativo Android é executado sob seu próprio usuário), portanto, não há necessidade de fornecer uma maneira interativa para que um usuário final execute um comando como sistema administrador.

Em geral, você pode usar em suvez de sudoexecutar um comando como um usuário diferente, mas você precisa conhecer as credenciais do usuário de destino su(pois sudovocê precisa conhecer as credenciais do usuário que executa o comando)

Ulrich Dangel
fonte
9

sudonão é universal . Só porque existe na distribuição Linux específica que você usa, não significa que esteja disponível em todos os sistemas operacionais que também usam o kernel Linux.

Warren Young
fonte
8

O telefone precisa estar enraizado para que o rootusuário instale sudo(ou qualquer outro aplicativo). Caso contrário, ele seria instalado como o usuário "padrão" e não teria acesso root.

Quanto à segunda pergunta, uma vez sudoinstalado no telefone raiz, na minha experiência, os aplicativos que precisam dele simplesmente solicitam e você recebe um prompt pop-up.

Aaron D. Marasco
fonte
5

Você toca em um ponto crítico da sua pergunta: uma instalação típica do Linux está enraizando: você inicializa a partir de um Live CD e sobrescreve o setor de inicialização do disco rígido para carregar seu próprio código.

Simplesmente fazer o root de um PC é menos árduo do que em um dispositivo semi-incorporado, como um telefone, de modo que as pessoas tendem a esquecer que a instalação de um segundo sistema operacional com inicialização dupla é fundamentalmente de raiz (a única coisa que o fará lutar contra isso é o BIOS com inicialização segura, mas que pode ser facilmente redefinida).

E o sistema operacional no dispositivo Android simplesmente não vem com o sudocomando (ou similar) instalado.

catraca arrepiante
fonte