Mac業界の最新動向はもちろん、読者の皆様にいち早くお伝えしたい重要な情報、
日々の取材活動や編集作業を通して感じた雑感などを読みやすいスタイルで提供します。

Mac Fan メールマガジン

掲載日:

El Capitanでは、rootの権限が通用しないの?

著者: 千種菊理

El Capitanでは、rootの権限が通用しないの?

新osの強固なセキュリティ

以前、本連載でUNIXから続くOS Xのユーザと特権の管理について話をしました。簡単におさらいすると、UNIXには「root(ルート)」と呼ばれる特権ユーザが存在し、そのUIDは「0」に固定されていて、UID 0の権限で実行されたコマンドはファイルのアクセス権などを無視して好きに操作できてしまう、というものでした。これは主に管理のために必要な機能なのですが、昨今ではなにゆえ権限が「強すぎる」ことでいろいろと制約を受けています。特にOS Xでは、初期設定でrootユーザが無効になっており、ログインできないようになっていることなどが挙げられます。

こうしたrootという特権は「悪人」にとって魅力的なのか、ソフトウェアの隙(バグ)をついて、rootを奪おうとする輩が後を絶ちません。そこでOS X 10・11 エルキャピタン(El Capitan)に組み込まれた非常に強固な防御の仕組みが「System Integrity Protection(SIP、直訳=システム統合防御)」です。

rootすら拒むSIP

SIPの内容は単純で、「システムにとって重要なものは、たとえrootでも書き換えられないようにする」といったものです。たとえばファイルについては、これまで「アクセス権」という考え方に基づいてそのファイルを読み込んだり、書き込んだり、コマンドとして実行したり、などができました。

SIPが有効になったエルキャピタンでは、そうしたアクセス権が無視され、SIPで保護されたフォルダから下のファイルは、たとえrootでも書き込んだり、新しくファイルやフォルダを作ったり削除したりできなくなります。これにより、システムを改ざんして悪意あるソフトウェアを組み込む、などが一切できなくなるわけです。

保護対象は下のリストのとおり。あくまでアップルから提供された、OS Xを構成するファイルだけが守られます。SIPが有効だからといって、各ユーザのホームフォルダ下にある、書類などがガチガチに保護されてどうしようもなくなる、なんてことはありません。

また、Macアップストアで販売されているソフトウェアならば、同様にSIPで困ることがありません。アップルのガイドラインで定められた、ソフトウェアのインストールや設定などの書き込み先などは、これまでどおりアクセスできるからです。

ソフトウェアは改善が急務

SIPが有効になって困るのは、システムを書き換えるようなきわどいソフトウェアや、準システム的に振る舞っていたソフトウェアです。たとえば、UNIXの標準的な組版システム「TeX」のMac版である「MacTeX」はSIPにより一時期インストールできなくなっていました。MacTeX の中のTeXコマンド群は「/usr/texbin」というフォルダを作って格納されますが、「/usr」がSIPによって保護されていることで、[texbin]フォルダの作成に失敗するからです。

OS Xでは「/Application」の下にソフトウェアを格納するというガイドラインがあり、UNIXでは古来より自前で追加されたソフトウェアは「/usr/local」以下に格納するしきたりがありました。SIPの導入は、そういったものを無視してしまった開発者に対する報いともいえるかもしれません。

現在、SIPに抵触したソフトウェアの多くが、そうならないよう改善を行っています。たとえば現在のMacTeXは「/Library/TeX/bin」にインストール先を変えることで、SIPを回避しました。なお、マーベリックスなど、エルキャピタン以前のOS Xにインストールした場合は「/Library/TeX/bin」から「/usr/texbin」へのシンボリックリンク(ファイルやディレクトリに付ける別名)が張られます。

システムを拡張する系統のソフトウェア、たとえば「ファイルを開く」ウインドウをカスタムするソフト「Default Folder X」などが、やはりSIPに抵触して正しく動作しなくなっているようですが、これも次期バージョンで対応予定としています。エルキャピタンでは、こうしたSIP対応済みのソフトウェアにアップグレードしていくのが正しいといえるでしょう。

しかし、使わなければならないソフトウェアの改修がすぐに行われるとは限りません。どうしてもという場合は、SIPを止めてしまう、ということも可能です。ただし、SIPがないということは、エルキャピタンによる強固なセキュリティが損なわれてしまう、ということです。可能なかぎり避けるべきでしょう。

自由から安全へのシフト

仕組みは違いますが、SIPの無効化はiOS/アンドロイドの「脱獄」に等しいものがあります。システムを改ざんしてでも利便性が欲しい人にとってみれば、邪魔なだけの保護機構を止めることで、改造する自由を手に入れるわけです。

SIPの仕組みは単純で、その単純な仕組みがなぜ今まで投入されなかったかというと、やはりコンピュータというものは、どこかに「改造する自由」を尊重したい暗黙の了解があったからに思えます。

一方、iPhoneからはじまる昨今のスマートフォンの世界では、システムは保護されていて当たり前、許された範囲でアプリケーションが動作するのが当たり前、という世界です。

課金に直結する通話や通信機能がビルトインされている「電話機」だからこその強固な安全性でしたが、蓋を開けてみれば一般的な利用者はそれでも問題ない、むしろそのほうが面倒がなくていいという感じです。

スノーレパード以降のOS Xはどこかに自由の香りを残したUNIXの枠を越えて、安全を重んじるスマートフォンの世界に近づくように、「iOS化」しつつある感じがします。だからこそSIPが導入できたように思えます。そして今後もより安全になっていくでしょうが、自由を知る人にとっては、安心だけどちょっとだけ寂しい世界になっていくのでしょうか。

SIPで制限を受けるパス

エルキャピタンから搭載されたSIPによって制限されるパスの例です。

SIPの無効化

[コマンド]キー+[R]キーを押して起動させ、[ユーティリティ]メニューからターミナルを起動します。

「csrutil disable」と入力し、実行。「Successfully」と出たら、[アップル]メニューから再起動します。

通常モードで再起動しログインしたあと、ターミナルを起動し、「csrutil status」と打ち込むとSIPの状態確認ができます。実はこの手順ではSIPそのものは有効なままです。しかし、SIPの制限がすべて「disabled(無効)」になっており、実質的に無効なのです。なお、ベータ版でできた、カーネルフラグに「rootless=0」と入力する方法は正式版では利用できなくなっています。

【 TeX 】

TeXは「テック」や「テフ」と読み、文字や図版を正しく配置し紙面を構成する「組版」を実現するソフトウェアです。数式がきれいに表現できるため論文や技術書などで活躍していますs柔軟なマクロが組める一方、そのままでは難解なため、「LaTeX」など、より扱いやすいマクロを束ねたものを組み合わせたり、「Re:View」の下請けとして組版に使うのが一般的です。

【 Mac App Store 】

OS X向けのソフトウェアのオンラインストアで、OS X 10.6.6以降に組み込まれています。10.7ライオン以降、OS X自身のメジャーアップデートもここで公開されています。Macアップストアにてソフトウェアを販売するには、アップルの開発者プログラムに参加し、ガイドラインに準拠した「安全」なソフトウェアである必要があります。今のところOS XではMacアップストア以外からダウンロードしたソフトウェアも実行できます。ただし、10.9マーベリックスで導入されたゲートキーパー(GateKeeper)のように「安全な」ソフトとそうでないソフトを区別する流れがあるのもまた事実です。

【ルートレス】

SIPは「rootless(ルートレス)」とも呼ばれています。エルキャピタンのベータ版やOS X10.10ヨセミテに残る設定などにルートレスと記載されていたためです。コードネームと正式名称が異なるのはアップル製品ではよくあることです。

【強制移動】

SIPの制限フォルダに標準外のファイルがある状態でエルキャピタンへアップグレードした場合、それらは「/Library/SystemMigration/ /QuarantinRoot」に強制移動されます。