Gatekeeperを使用してアプリケーションへのアクセスを制御する
あなたは使用することができspctl
、承認と未承認のアプリケーションのリストを作成する(ゲートキーパー)を。
たとえば、メールを許可し、Chromeをブロックするとします。
sudo spctl --add --label "ApprovedApps" /Applications/Mail.app
sudo spctl --add --label "DeniedApps" /Applications/Chrome.app
上記のコマンドは、MailとChromeをそれぞれ「承認」および「拒否」として「ラベル付け」します(独自の記述子を使用できます)。
次に、アプリを有効/無効にするには、次のコマンドを発行します。
sudo spctl --enable --label "ApprovedApps"
sudo spctl --disable --label "DeniedApps"
これの利点は、いずれかのリストに別のアプリを追加するには、適切なラベルを追加する必要があるだけです。
sudo spctl --add --label "ApprovedApps" /Applications/Another.app
さらに、Mac App Storeのコードの実行を禁止できます(spctl
manページにあります- man spctl
)。
spctl --disable --label "Mac App Store"
これにより、誰もがApp Storeからアプリをダウンロードしてインストール/実行することができなくなります。
管理者への対応/sudoers
コメントに記載されているように、管理者が実行できることはすべて、別の管理者は元に戻すことができます。を使用spctl
するにはrootが必要ですが、sudoersファイルを編集して特定のコマンドへのアクセスを制限するには、他のユーザー/管理者が変更を元に戻せないようにする必要があります。
sudoユーザーが特定のコマンドを実行できないようにする方法を参照してください。sudoers
ファイルに「例外付きのホワイトリスト」を構成する方法の詳細については、
たとえば、ユーザーSamにを除く すべてのコマンドへのアクセスを許可spctl
するには、sudoersファイルに次のように入力します。
sam ALL = ALL, !/usr/sbin/spctl
さて、これはへのアクセスを防ぐための「迅速かつ汚い」方法spctl
ですが、他の管理者があなたの戦略に賢明である場合、彼/彼女がしなければならないすべてはコマンドの名前を変更し、アクセス権があるので、最終的には効果的ではありません。
sudoers
manページから:
一般に、ユーザーがsudo ALLを持っている場合、「!」に関係なく、ユーザーにルートシェルを与える独自のプログラムを作成する(またはシェルの独自のコピーを作成する)ことを妨げるものはありません。ユーザー仕様の要素。
本当にロックダウンするには、他のユーザーを強制的にsu
別のユーザー(つまり、オペレーター)にするか、デフォルトで許可されたコマンドのホワイトリストを作成して、他のすべてをブロックする必要があります。ただし、重要な機能から人々を締め出すことができるため、これは時間がかかり非常に危険です。