web-dev-qa-db-ja.com

SudoがLinuxでは機能するがAndroidでは機能しないのはなぜですか?

Android 、Linux、またはUNIXについて自分自身で答える十分な機会はありませんでした。 SudoはLinuxマシンで機能しますが、Android=モバイルデバイス(Samsung GT-N8013など)をルート化しない限り)で機能しません。モバイルデバイスをルート化する必要があるのはなぜですか? 、しかし典型的なLinuxのインストールではありませんか?


私の質問のコンテキストは関連しています https://stackoverflow.com/questions/14019698/adb-Shell-Sudo-on-windows-7/14019726#14019726

(また、プログラムをAndroidでrootとして実行するように要求する方法はありますか。これは、Windowsで「管理者として実行」する権限をエスカレーションするのと同じ方法ですか?この質問は、自分のスレッド、私はそれを作成することができます)

22
T. Webster

Sudoはsuidビットを備えた通常のアプリケーションです。つまり、Sudoを使用するには、システムにインストールする必要があります。 Debianなどのように、すべてのLinuxシステムにデフォルトでSudoがインストールされているわけではありません。

ほとんどのAndroidシステムは、Android(つまり、各Androidアプリケーションは自身のユーザーの下で実行されるため)、エンドユーザーがシステム管理者としてコマンドを実行するためのインタラクティブな方法を提供する必要はありません。

一般に、suの代わりにSudoを使用して別のユーザーとしてコマンドを実行できますが、suのターゲットユーザーの認証情報を知っている必要があります(Sudoコマンドを実行するユーザーの資格情報を知っている必要があります)

20
Ulrich Dangel

Sudoは普遍的ではありません 。使用している特定のLinuxディストリビューションに存在するからといって、Linuxカーネルを使用するすべてのOSで使用できるという意味ではありません。

9
Warren Young

rootユーザーにSudo(またはその他のアプリ)をインストールさせるには、電話をルート化する必要があります。それ以外の場合は、「標準」ユーザーとしてインストールされ、rootアクセス権がありません。

2つ目の質問については、Sudoがルート化された電話にインストールされると、私の経験では、それを必要とするアプリは単にそれを要求し、ポップアッププロンプトが表示されます。

8

質問の重要なポイントに触れます。典型的なLinuxのインストールIS rooting:Live CDから起動し、ハードドライブのブートセクターを上書きして独自のコードをロードします。

PCのルート化は、電話のようなセミエンベデッドデバイスよりも難しくないため、デュアルブートで2番目のOSをインストールすることは本質的にルート化することを忘れがちです(これであなたと戦う唯一のものはBIOSですセキュアブートですが、簡単にリセットできます)。

また、AndroidデバイスのOSには、Sudoコマンド(または類似のコマンド)がインストールされていません。

5
ratchet freak