Apps

Mac OS XでGUIアプリをルートとして実行する方法

Mac OS XでGUIアプリをルートとして実行する方法

コマンドラインに精通している人は、スーパーユーザー権限で何かを実行するには、通常、sudoコマンドを使用するだけで済むことをご存知でしょう。これは、GUIアプリをOS Xでroot権限で起動する場合にも当てはまりますが、単にopenコマンドの前にsudoを付けるだけでは不十分です。なぜなら、「open」コマンドはsudoの有無に関わらず、元のユーザーとしてアプリを起動するからです。代わりに、特定のアプリケーションパッケージファイルに含まれる実行ファイルを直接指定するsudoを使用するという解決策があります。

Mac OS Xでルートユーザーとして実行されるGUIアプリケーション

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 をバックグラウンド アプリとして起動するには (つまり、ターミナル ウィンドウを閉じても閉じないようにするには)、sudo に -b フラグを適用します。

sudo -b /Applications/TextEdit.app/Contents/MacOS/TextEdit

Mac OS XでルートとしてGUIアプリケーションを起動する

アプリケーションが root として実行されていることを確認するには、ps コマンドと grep を使用します。ここでも TextEdit を例に挙げます。

ps au|grep TextEdit

あるいは、上のスクリーンショットと下の短いビデオに示されているように、OS X のプロセス管理アプリ「アクティビティ モニタ」を確認し、そこで「ルート」ユーザーとして実行されているアプリケーションを見つけることもできます。

特定のアプリを root として頻繁に実行する場合は、コマンド文字列を短くするために .bash_profile にエイリアスを配置することを検討してください。

ルート権限で実行しているにもかかわらず、すべてのシステムファイルが変更可能というわけではなく、TextEditなどの一部のアプリで開いた際に「ロック」と表示される場合もあります。この問題は、ルート権限を有効にしていない場合は有効にすることで解決できる場合が多いですが、すべてのアプリでこの制限が適用されるわけではありません。ただし、hostsファイルの編集など、特定のタスクでは、コマンドラインとテキストベースのエディタを使用するか、BBEditやTextWranglerなどのアプリを使用する方が賢明です。