dlaczego sudo działa na systemie Linux, ale nie na Androidzie?


22

Nie miałem okazji przeczytać wystarczająco dużo na temat Androida , Linuksa lub UNIXa, aby samemu odpowiedzieć na to pytanie. sudodziała na komputerze z systemem Linux, ale nie działa na Androidzie, chyba że zrootujesz urządzenie mobilne (np. Samsung GT-N8013). Dlaczego urządzenie mobilne wymaga rootowania, a nie typowej instalacji Linuksa?


Kontekst mojego pytania jest związany z /programming/14019698/adb-shell-sudo-on-windows-7/14019726#14019726

(Czy jest też jakiś sposób, aby program poprosił o uruchomienie tak, jak rootna Androidzie, tak samo jak masz eskalację uprawnień do „działania jako administrator” w systemie Windows? Jeśli uważasz, że to pytanie powinno dotyczyć własnego wątku, mogę utworzyć jeden)


Powinien być na sudoersliście do zdobycia sudo. Ubuntu nie jest na Androidzie
3539,

Odpowiedzi:


20

sudoto normalna aplikacja z bitem suid. Oznacza to, że aby sudogo użyć , należy go zainstalować w systemie. Nie wszystkie systemy Linux sudozainstalowały się domyślnie, jak na przykład Debian.

Większość systemów Android jest skierowana do użytkowników końcowych, którzy nie muszą znać wewnętrznych elementów Androida (tj. Każda aplikacja na Androida działa pod własnym użytkownikiem), więc nie ma potrzeby zapewnienia interaktywnego sposobu uruchamiania polecenia przez użytkownika jako system administrator.

Zasadniczo można użyć suzamiast sudouruchamiać polecenie jako inny użytkownik, ale musisz znać poświadczenia dla użytkownika docelowego su(ponieważ sudomusisz znać poświadczenia użytkownika uruchamiającego polecenie)



8

Telefon musi być zrootowany, aby rootużytkownik mógł zainstalować sudo(lub dowolną inną aplikację). W przeciwnym razie zostałby zainstalowany jako „standardowy” użytkownik i nie miałby dostępu do konta root.

Jeśli chodzi o drugie pytanie, po sudozainstalowaniu na zrootowanym telefonie, z mojego doświadczenia wynika, że ​​aplikacje, które tego potrzebują, po prostu o to proszą i pojawia się wyskakujące okno.


5

Dotykasz punktu krytycznego w swoim pytaniu: typowa instalacja systemu Linux to rootowanie: uruchamiasz się z Live CD i zastępujesz sektor rozruchowy dysku twardego, aby załadować własny kod.

Po prostu rootowanie komputera jest mniej uciążliwe niż na urządzeniu częściowo osadzonym, takim jak telefon, więc ludzie często zapominają, że instalowanie drugiego systemu operacyjnego z podwójnym uruchomieniem jest zasadniczo rootowaniem (jedyną rzeczą, z którą będziesz walczył w tym systemie, jest BIOS z bezpieczny rozruch, ale można go łatwo zresetować).

A system operacyjny na urządzeniu z Androidem po prostu nie ma zainstalowanego sudopolecenia (lub podobnego).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.