2014Unix系OSの権限分離の変遷について(もしくはなぜ、アプリ単位の権限分離が求められるようになったか)[ブコメした件について。idを割り振り、これを用いてアクセス制御を行うという方式で実現されてきた。id」を発番するのが一般的な慣習とされるようになったという経緯がある。2000年代に入ると、インターネットの普及とあいまって、クライアントサイドではこのような「利用者ごと」の権限分離では不十分という考え方がされるようになってきた。具体的には、(オンラインバンクのパスワードに代表されるような)攻撃価値が高い情報をOS内に保存・利用するのが一般的になった(限定された流通経路で入手するソフトウェアのみならず)インターネットからダウンロードしたプログラムを実行するという慣習が一般的になったのようにユーザー行動が変化した結果、高いセキュリティが要求される処理と、セキュリティよりも利便性を重視したい処理が、同一のアクセス権限のもとに併存するようになったのである。そのような状況は危険である(ネットからダウンロードしたマルウェアによって重要な情報が流出する可能性がある)。よって、同一ユーザー権限のもとで動作するプログラム間においても、アクセス権限の分離の必要性が認められるようになってきたのだ。id」を割り振り、互いのデータにアクセスできないような仕組みになっている。Xのような、より以前からあるUnix系OSにおいては、このような仕組みに移行することは現実的でないため、Keychainのように、秘匿性の高い情報についてのみプログラム単位でのアクセス制御機能を提供することで、問題の緩和が計られている。以上のような経緯があるので、クライアント上で一般ユーザー権限で動作するプログラムにおいて、(psコマンド等を通じて情報が流出する問題がある)環境変数に認証情報を格納するのは避けるべきと言えるだろう。