Mac OS X で root として GUI アプリを実行する方法
コマンドラインに精通している人は、スーパーユーザー権限で実行することは通常、sudo コマンドを使用するだけの問題であることを知っています。これは、root 権限で OS X に GUI アプリを起動する場合にも当てはまりますが、sudo の有無にかかわらず、「open」は元のユーザーとしてアプリを起動するため、便利な open コマンドの前に sudo を追加するだけの問題ではありません。代わりに、特定のアプリケーション パッケージ ファイル内に含まれる実行可能ファイルを直接指す sudo を使用することで解決できます。
root ユーザーとして OS X GUI アプリを起動する
コマンド構文は次のとおりです。
sudo /Path/To/Application/ApplicationName.app/Path/To/Executable
ほとんどの場合、アプリケーションは /Applications/ ディレクトリに保存され、実行可能ファイルはほとんどの場合、アプリケーション名が何であれ、Package/Contents/MacOS/ に保存されます:
sudo /Applications/ApplicationName.app/Contents/MacOS/ApplicationName
たとえば、このコマンドは使い慣れた TextEdit アプリを root として実行します:
sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit
TextEdit をバックグラウンド アプリとして起動するには、つまりターミナル ウィンドウを閉じても終了しないようにするには、-b フラグを sudo に適用します: sudo -b /Applications/TextEdit .app/Contents/MacOS/TextEdit
ps au|grep TextEdit
別の方法として、OS X プロセス管理アプリのアクティビティ モニターを見て、上のスクリーンショットと下の短いビデオに示されているように、「root」ユーザーとして実行されているアプリケーションを見つけることもできます:
特定のアプリを root として頻繁に実行する場合は、.bash_profile にエイリアスを配置してコマンド文字列を短くすることを検討してください。
root として実行しているにもかかわらず、すべてのシステム ファイルが変更可能であるとは限らず、TextEdit などの一部のアプリで開くと、一部のシステム ファイルが「ロック済み」とマークされる場合があります。この問題は、まだ root ユーザーを有効にしていない場合は有効にすることで解決できることがよくありますが、すべてのアプリにその制限があるわけではありません。とはいえ、hosts ファイルの編集などの特定のタスクについては、コマンド ラインとテキスト ベースのエディターを使用するか、BBEdit や TextWrangler などのアプリを使用する方がよいでしょう。