AndroidやiOSのように権限がないのはなぜですか?

AndroidやiOSのように権限がないのはなぜですか?

LinuxにGIMPやLibreOfficeなどのプログラムをインストールすると、権限を要求するメッセージはまったく表示されません。 Ubuntuにプログラムをインストールすることで、プログラムに自分のドライブのどこからでも読み書きできるフルアクセス権とインターネットへのフルアクセス権を明示的に付与しますか?

理論的には、GIMPはsudoタイプのパスワードを必要とせずに私のドライブのディレクトリを読み取ったり削除したりできますか?

これが可能かどうかではなく、技術的に可能かどうか疑問に思います。もちろん、私はこれが可能ではないことを知っています。

答え1

これには2つのことがあります。

  • 標準的な手段(Ubuntuのapt / apt-getなどのセットアップユーティリティ)を介してプログラムをインストールすると、通常はすべてのユーザーが利用できるいくつかのディレクトリ(/ usr / bin ...)にインストールされます。このディレクトリには書き込み権限が必要なため、インストール中に特別な権限が必要です。

  • プログラムを使用すると、そのプログラムはユーザーIDで実行され、IDで実行されているプログラムが読み書きできる場所でのみ読み書きできます。 Gimpに関する限り、標準リソース(ブラシなど)は共有にあり、/usr/share/gimp/最初にコピーする必要があるため編集できないことがわかります。これはまた、Edit>Preferences>Foldersほとんどのフォルダがペアで表示され、システムフォルダが読み取り専用で、ユーザーフォルダが書き込み可能であることを示しています。

答え2

Ubuntuにプログラムをインストールすることで、プログラムに自分のドライブのどこからでも読み書きできるフルアクセス権とインターネットへのフルアクセス権を明示的に付与しますか?

はい、またはそれに対応する製品を使用している場合にsudo提供されます。インストーラドライブ上のすべての場所に対する完全な読み取り/書き込みアクセス権があります。基本的には同じです。インストーラはsetuidというフラグを設定することもできます。これはインストール後もプログラムに完全な権限を与えます。

インストーラを無視してプログラムがsetuidでない場合(プログラムでsetuidを使用することは非常にまれです)、プログラムを実行すると、アカウントがアクセスできるすべてのエントリへのフルアクセス権があります。たとえば、オンラインバンキングにログインすると、すべての資金がナイジェリアに転送される可能性があります。

AndroidやiOSのように権限がないのはなぜですか?

Linuxのセキュリティモデル(つまり、セキュリティシステムの設計方法)は非常に古くなっています。 Unixから継承され、1960年代までさかのぼる歴史があります。当時はインターネットがなく、部署のほとんどの人が同じコンピュータを使用していました。ほとんどのプログラムは、信頼できる大規模企業によって提供されます。したがって、セキュリティシステムは、ユーザーが実行するプログラムではなく、ユーザーを互いに保護するように設計されています。

今日はかなり昔ながらです。 AndroidはLinuxに基づいていますが、ユーザーごとにアプリケーションごとに別々の「ユーザーアカウント」を作成することで動作します。 iOSでは何を使うべきかわかりません。 Flatpakのような企業は現在、Linuxデスクトップに同じ機能を提供しようとしています。

答え3

Flatpackアプリはあなたが望むものを提供します。これはiOS、Android、またはWindows App Storeアプリと非常によく似ています。

まだ使ったことがないので、各アプリをインストールする際にどのような権限が必要かを確認できるGUIを実装したかどうかはわかりません。

https://blogs.gnome.org/alexl/2017/01/20/the-platpak-security-model-part-2-who-needs-sandboxing-anyway/

すべてのFlatpakアプリケーションには、メタデータと呼ばれるマニフェストが含まれています。このファイルは、対応するID(app-id)や使用するランタイムなどのアプリケーションの詳細を説明します。また、アプリケーションに必要な権限もリストされています。

デフォルトでは、インストール後にアプリケーションは要求するすべての権限を受け取ります。ただし、flatpakオーバーライドを使用して各flatpak実行呼び出しの権限をオーバーライドしたり、アプリケーションごとにグローバルに権限をオーバーライドしたりできます(詳細については、flatpak-runおよびflatpak-overrideのマニュアルページを参照)。アプリケーション権限の処理は現在インターフェイスには少し隠されていますが、長期的な計画はインストール中に権限を表示し、それをより簡単に上書きできるようにすることです。

また、Ubuntuの代替手段であるSnappyを使用しておらず、これがGUIに表示される機能を提供しているかどうかもわかりません。

答え4

Androidは「マーケットプレイス」セキュリティモデルを使用しています。さまざまなアプリケーションはさまざまな(信頼できない)ベンダーによって提供され、保護されたリソースと互いに分離する必要があります。ほとんどのアプリは利益のために配布されています。アプリは販売(有料ソフトウェア)、有料広告を表示したり、第三者にデータを販売してユーザーに「収益を上げる」ことができます。摘発されたとしても、違法なデータアクセスに参加する有人が高い。

Debian、Red Hat、および同様の「クラシック」Linuxディストリビューションのほとんどのアプリケーションはソースコードとして配布されています。オープンソースアプリケーションが十分な関心を得た後、Deployment Managerはそれを含めるように手動で選択します。違法なデータアクセスを実行する動機はほとんどありません。潜在的な利益は努力を正当化しません。

Androidの高度なセキュリティモデルは、Androidがモバイル市場で多くの注目を集め、iOSを簡単に圧倒することができた理由の1つであることは注目に値します。最新のデスクトップLinuxディストリビューションは、「異なる」だけでなく、実際にはセキュリティとデプロイモデルの面で時代にはるかに劣っています。

一部のLinuxディストリビューションでは、集中型のサードパーティ製ソフトウェアリポジトリ(AUR)、サードパーティ製ソフトウェア配布用の特別なパッケージフォーマット(AppImage、Snappy、Flatpack)、セカンダリストレージシステム(Docker)などのソフトウェア配布システムを改善しています。残念ながら、これらの改善は時間の経過とともにほとんど関心を集めなかった。 AppImageは2004年に発明され、AURの最初のバージョンは2005年にリリースされましたが、10年以上にわたって最新のLinuxディストリビューションではこの機能を正式に採用していません。

関連情報