個々のアプリをパスワードで保護する方法はありますか?


27

特定のMacアプリケーションをパスワードで保護することはできますか?

たとえば、新しいメールを取得できない場合でも、すでに受信したすべてのメールを読むことができるため、Mailの保護に興味があります。

これはセキュリティに関する質問ではありません。家族内でデバイスを共有することです。私は重要な情報を持っていません。私は自分のアカウントから誤ってメールを送信したり、一部のメールを読んだりしないように、女の子や息子を避けたいだけです。


30
これはXY問題の例のように聞こえます。あなたがあなたの電子メールをpeople索するのを防ぎたいので(X)、あなたはあなたの電子メールプログラムを保護する方法について尋ねています(Y)。あなたが本当に聞きたいのはWhat's the best way to protect my email from snooping? 、それに対する答えは、許可されていないユーザーがあなたのアカウントを使用することを完全に防ぐのが最善だということです-例えば、スクリーンセーバーを無効にするためにパスワードを要求したり、システムをスリープから復帰させた後です。
オースティン

3
@Austinのコメントに賛成票を投じてください。Mail.appが開かないようにしても、他の人があなたのメールにアクセスすることを妨げていません。Mail.appはメールをディスク上の平文で保持します~/Library/Application Support-誰かがあなたのメールを望んでいるなら、彼らはそこからファイルを取得し、それらでやりとりすることを知っているでしょう。
イアンC。

4
@Everybody:これはセキュリティに関する質問ではありません。家族内でデバイスを共有することです。私は重要な情報を持っていません。私は自分のアカウントから誤ってメールを送信したり、一部のメールを読んだりしないように、女の子や息子を避けたいだけです。
ピエールワトレ

1
それは非常に明確になります-裸の言葉を読むだけで、これはあなたが子供や事故で持っていないだけの多くの影響を受けました。この場合、自分のアカウントを設定するか、私の提案を使用してアカウントのアプリの一部をペアレンタルコントロールするかどうかに興味があります...あなたがまだ解決策を探していると仮定して、答えをより良くするのを手伝おうとは思わないでしょう)
bmike

4
→ラブスカトラン:あなたの問題は基本的なセキュリティ問題です。あなたのニーズは基本的なものです:あなたのファイルを読む人を制御します(あなたの保存された電子メールを含みます)。あなたの問題を正しく推測できたら☂、マイクのアドバイスに投票しますすべての人に1つのアカウント!それは無料です :)。
ダン

回答:


27

ポールの答えに対するあなたのコメントについて、しばらくの間あなたのコンピュータを離れたいと思っています:あなたはあなたのコンピュータをロックしなければなりません。期間。

[システム環境設定]を開き、[セキュリティ](一番上の行、最後から2番目のオプション)をクリックし、[全般]タブで、[スリープまたはスクリーンセーバーの開始後に[すぐに]パスワードを要求する]チェックボックスをオンにします。

次に、コンピューターから離れて歩きに行くとき。

Ctrl ⌃+ Shift ⇧+Eject ⏏

(追加メモ:上記の行をクリックしてください。)

Macをロックします。歩いて行ってしまう。戻って、パスワードを入力してロックを解除します。保護されたコンソール。


3
+1 Paulは彼自身の回答の下にあるコメントでこれを最初に言及しましたが、彼はまだ彼自身の回答にそれを統合していないので、私はこれを投票します。私はこれに+3を与えることができるといいのですがyou have to lock your computer. Period.
オースティン

-1これは、質問に対する回答になりました。OPは、マルチユーザーアカウントの個々のアプリを保護するパスワードを明示的に要求します。別のシナリオ:別の管理者がパスワードを簡単にリセットし、そのユーザーとしてログインしてすべてのアプリにアクセスできます。
-leymannx

私は最初の文でそれを取り上げました。また、別のローカル管理者アカウントがある場合、それらから離れたアプリをパスワードで保護することはできません。それは不可能です。
ジェイソンサラズ

10

アカウントにペアレンタルコントロールを設定するだけで、使用できるアプリを決定できます。

または、スクリーンセーバーにパスワードを設定し、適切な「ホットコーナー」を定義してスクリーンセーバーをアクティブにすることもできます。その場合、コンピューターから離れると、ホットコーナーにマウスを移動して画面を効果的にロックできます。アクセスするにはパスワードが必要です。


いいえ、しばらくの間コンピューターをログに残し、受信したメール(Mailがまだ開始されていない場合)を誰も読むことができないようにします。しかし、より一般的には、私の不在中に誰もアプリを起動して何かを作成して終了することはできません。
ピエールワトレ

10
その場合、スクリーンセーバーに「ホットコーナー」を設定し、スクリーンセーバーを終了するためにパスワードを要求するだけです。Macを離れると、ホットコーナーにマウスを押して画面をロックします。
ポールR

またはスクリーンセーバーのタイムアウトを短く設定します
-user151019

だから...アプリのpassowordを設定することはできません
ピエールWatelet

1
@Paul +1パスワードで保護されたスクリーンセーバーを直接あなたの回答に設定することについての素晴らしい提案を編集することをお勧めします。
オースティン

9

スクリプトを使用することは可能です。

まず、OS Xメニューバーでスクリプトメニューを有効にする必要があります。「スクリプトメニュー」セクションを読んでください:スクリプトメニューを有効にします

Library / Scriptsフォルダーを開き、これらのコンテンツを含む「run_with_password.rb」というファイルを作成します(「johndoe」をユーザー名に変更します)。

#!/usr/bin/env ruby
# run an app at lower privilege

require 'etc'
require 'find'

# Note: anyone with sudo access will be able to run as this user. But they could do that anyway.
# run 'id' at the terminal to find out what your username is.
RUN_USER = 'johndoe'

def get_root_info
  root_entry = Etc.getpwnam('root')
  return root_entry.uid, root_entry.gid
end

ROOT_UID, ROOT_GID = get_root_info

def ensure_root
  Process.uid = ROOT_UID
  Process.gid = ROOT_GID
end

def print_user_info
  [
   [:uid, Process.uid],
   [:gid, Process.gid],
   [:euid, Process.euid],
   [:egid, Process.egid],
  ].each do |arr|
    $stderr.puts arr.inspect
  end
end

def set_effective(euid, egid)
  $stderr.puts "setting effective to #{[euid, egid].inspect}"  if $DEBUG
  # must set group first
  Process.egid = egid
  Process.euid = euid
end

def do_privileged(&block)
  orig_euid = Process.euid
  orig_egid = Process.egid
  begin
    $stderr.puts "raising privileges"  if $DEBUG
    set_effective(ROOT_UID, ROOT_GID)
    yield orig_euid, orig_egid
  ensure
    $stderr.puts "lowering privileges"  if $DEBUG
    set_effective(orig_euid, orig_egid)
  end
end

# must be called after ROOT_UID, ROOT_GID are set
def chmod_files_in_dir(mode, dir)
  mode_str = nil
  case mode
  when Integer
    mode_str = '%o' % mode
  when String
    mode_str = mode
  else
    raise TypeError
  end
  chmod_proc = proc do
    Find.find(dir) {|entry|
      if File.directory?(entry) and entry != dir
        Find.prune  # don't recurse into subdirs
      elsif File.file?(entry)
        $stderr.puts "chmod #{mode_str} #{entry}"  if $DEBUG
        system 'chmod', mode_str, entry
      end
    }
  end
  # assume that if dir is owned by root, the executables are also.
  if File.stat(dir).uid == ROOT_UID
    do_privileged(&chmod_proc)
  else
    chmod_proc.call
  end
end

def main(argv)
  # Important: this is to abort if we're not running as root.
  ensure_root

  app_path = argv.shift or raise "Need path to .app file, e.g. /Applications/Mail.app"
  app_macos_dir = File.join(app_path, 'Contents/MacOS')
  File.directory?(app_path) or raise "#{app_path} is not an app bundle"
  File.directory?(app_macos_dir) or raise "#{app_path} bundle doesn't have expected MacOS structure"

  pw_entry = Etc.getpwnam(RUN_USER)
  run_uid = pw_entry.uid
  run_gid = pw_entry.gid


  if $DEBUG
    $stderr.puts [:run_uid, run_uid].inspect
    $stderr.puts [:run_gid, run_gid].inspect
    print_user_info
  end

  # Effectively become RUN_USER
  set_effective(run_uid, run_gid)

  if $DEBUG
    print_user_info
  end

  begin
    chmod_files_in_dir('+x', app_macos_dir)
    # 'open' is asynchronous, so the ensure will run immediately after, and before the app exits.
    $stderr.puts "Running app: #{app_path}"  if $DEBUG
    system 'open', app_path
  ensure
    chmod_files_in_dir('-x', app_macos_dir)
  end
end

if __FILE__ == $0
  $DEBUG = false
  main(ARGV)
end

次に、スクリプトエディターを起動し、次のコードを貼り付けます(再びjohndoeをユーザー名に変更します)。

do shell script "ruby /Users/johndoe/Library/Scripts/run_with_password.rb /Applications/Mail.app" with administrator privileges

ファイルを「mail_with_password」としてライブラリ/スクリプトに保存し、ファイル形式が「スクリプト」であることを確認します。

これで、スクリプトメニューに「mail_with_password」が表示されます。実行するたびに、パスワードの入力を求められます(一部のインストーラーと同じように)。実行が完了すると、通常のメールアプリケーションへのアクセスが無効になります。そのため、スクリプトを1回実行してから、メールアプリを実行してみてください。実行されません。これは、ユーザーだけでなく、マシン上のすべてのユーザーが直接Mailを実行できないことを意味します。

Mailを再び正常に実行できるようにする場合は、ターミナルで次のコマンドを実行します。

sudo chmod +x /Applications/Mail.app/Contents/MacOS/Mail

「sudo」を省略できる場合があります。「操作は許可されていません」と表示される場合は、sudoを使用します。sudoは、特権操作を許可するためにパスワードを要求することに注意してください。

注意事項

  1. 上記の「sudo」コマンドを使用してchmodを実行する必要がなかった場合、それは知識のあるユーザーがMailアプリを再度有効にする方法を理解できる可能性があることを意味します。MacOS / Mailファイルの所有者をrootに変更することにより、セキュリティを強化できます。それは読者のための演習として残されました。
  2. 誰かが(たとえば、USBドライブを介して)メールアプリをコンピューターにコピーできる場合でも、メールにアクセスできます。
  3. rubyスクリプトは、ほとんどのOS Xアプリケーションバンドルで機能することを意図しています。root(特権ユーザー)として特定のことを行っているため、あなたが何をしているのか本当に理解していない限り、rubyスクリプトを微調整することはお勧めしません。applescriptコードの調整は無害です。ただし、chmodコマンドを調整してアプリを再び直接実行可能にする方法を知っておく必要があります。
  4. applescriptファイルのアプリへのパスにスペースまたはその他の特殊文字が含まれている場合、パス全体を一重引用符で囲むなどの操作を行う必要があります。
  5. 編集:ユーザーAustinは、この手順では.emlxファイルを保護しないことを提案しました。私は実際にメールアプリを使用していないので、データストレージに精通していません。同様の問題はすべてのアプリに当てはまります-このソリューションはユーザーデータを隠さないためです。

パラノイア

rubyを知っているユーザーがログインしているユーザーにアクセスできる場合、スクリプトを実行するときに一部のルートとして実行されるため、あらゆる種類の大混乱を引き起こす方法でrubyスクリプトを変更できます。これが起こる可能性があると思われる場合は、スクリプトをrootのみが書き込み可能にする必要があります。また、誰かがスクリプトを自分のものに置き換えないことを確認する必要があります。フォルダーが書き込み可能である場合、彼らはこれを行うことができます。これらの警告に怖がり始め、自分を守る方法がわからない場合は、おそらくこの解決策を忘れて、コンピューターを離れるときに画面をロックすることを忘れないでください。


わあ、4時間で3回のアップ投票ですか?特に保護したいアプリごとに1つのAppleScriptを作成する必要があるため、このようなハックを使用する人があまり多くないと予想していました。新しいトリックを学ぶためだけであったとしても、人々が私のソリューションをどのように使用しているか聞いてみたい。
ケルビン

8
-1ですが、これが個人的に受け止められないことを願っています。私はここの詳細レベルが本当に好きです、そして、これが多くの考えが入ったことは明らかです、しかし、私はこの解決が安全の危険な誤った感覚を与えると思います。言及しなかった大きな警告の1つは、に.emlx保存されているプレーンテキストメールファイルへのアクセスを妨げないことです~/Library/Mail
オースティン

3
@オースティン、あなたはもちろんあなたのダウン投票を受ける資格がありますが、私はあなたの理由を理解していません。私の警告と妄想のセクションは、これが安全な解決策ではないことを示すのに十分であると思う-それはただの抑止力だ。警告を追加しましたが、基本的に警告#2の背後にある同じ考えです。また、OPは、「すでに取得したメール」を読んでいる他の人のことを気にしていないと述べました。
ケルビン

3
私は実生活では決して使用しないであろう多くの複雑なことにthings敬の念を抱いています。これは1つです-よくやったケルビン-これであなたは私から+1を獲得しました。:-)この質問に対して可能な限りの「最良の」答えになるとは思わないが、名誉ある言及が得られることを望んでいる。
bmike

あなたは質問のその部分を誤解していると思います(確かに、おそらくより良い言葉で表現できるでしょう)。@Rabskatran-間違っている場合は修正してください。しかし、OPがアプリをパスワードで保護したい理由を説明しようとしていると確信しています。言い換えると、スヌープは新しいメールを取得できませんが(アカウントのパスワードがMailに保存されていないためと思われます)、既存のダウンロードされたメールを読み取ることができるため、OPがパスワード保護を必要としていたのです。
オースティン

5

はい-メールをパスワードで保護するいくつかの方法が実用的です。あなたは子供/家族を心配しているので、最も簡単なのはあなたのアカウントでペアレンタルコントロールを使用してそれらのアプリを制限することです。ある時点で、彼らは自分のアカウントを持つことができ、あなたはあなたのアカウント全体をロックすることができます。


アプリをロックしたり、アプリがアクセスできるデータをロックしたりする一般的な場合に実行可能なオプションを次に示します。

  1. アカウントを保護されたペアレンタルアカウントにし、許可するアプリのホワイトリストを作成します。禁止されたアプリの起動を許可するための個別の管理ユーザー/パスワードがわかります。出来上がり-必要なアプリはすべてパスワードで保護されています。

  2. パスワードで保護されたディスクイメージにアプリを移動してから、アプリケーションフォルダーに保存するエイリアスを作成します。(最初に元のアプリを削除する)プログラムがアプリにアクセスしようとすると、パスワードを入力する機会が得られ、ファインダーがディスクイメージをマウントします。また、スクリプトを実行してアプリを再び実行可能にする前に、権限の変更やその他の技術的なトリックをスクリプト化してパスワードを要求することもできます。

  3. パスワードで保護された暗号化ディスクイメージにアプリケーションデータを保存します。ここではいくつかある一般的なアプリと、彼らは、ユーザーデータを保存するフォルダが

  4. メールアプリをリムーバブルドライブに保存します-USBドライブからアプリを実行するためのスタンドアロンアプリパッケージの作成については、家内産業があります。

アプリ内でフレームワークを使用するスポットライトや他のアプリなどは、画像がマウントされるまでうまく機能しないことに注意してください。(データを見たくない人からの)ユーザーパスワードが安全な場合は、キーチェーンにディスクイメージのパスワードを保存できます。

また、データファイルを保護しない限り、それはあいまいさによる唯一のセキュリティであり、誰かがあなたのデータを他の場所にコピーしたり、スポットライトやテキスト編集などの他のアプリから見たりすることができます。また、別のコンピューターからメール(またはその他の)アプリのコピーを持ち込むこともできます。管理者ユーザーがそのシステムで最初に実行するためにアプリケーションを祝福すれば、アプリケーションはアプリケーションフォルダーだけでなく、どこからでも実行できます。

したがって、#3が唯一の方法です。データをロックして、アプリについて心配する必要はありません。


5

ここにあなたが求めていることをするMacユーティリティがあります。個々のアプリをパスワードで保護できます。また、選択した時間だけ非アクティブになった後にアプリケーションを終了するタイムアウト値を設定できます。

Macアプリブロッカー


1
Mac App Blockerはまさに彼が探しているものです。Appleの技術者として、私たちは何年もの間この能力に対するこのリクエストを受け取ってきました(Oulook 2001を覚えていますか?)。ユーザーは、子供や同僚が.emlxファイルを引き出して読み込むためにライブラリフォルダーを掘り下げることを心配していません。それはポイントではありません-彼らは他の人に彼らのMacを使わせることを気にしません、彼らは彼らに彼らのメールを読んでほしくありません。簡潔でシンプル。Mac App Blockerは、それが行うことを実行します。

2

それは私が知っている古いスレッドですが、あなたと同じ問題を抱えていました…ここに解決策があります:iLockと呼ばれるアプリケーション。選択後にパスワードで単一のアプリを保護します。シンプルで効率的、完全に無料! https://www.macupdate.com/app/mac/49881/ilock


1

うーん しばらくこれをやりたかった。たとえば、SkypeやTrillianなどのチャットプログラムなど、指示がない限りローカルファイルを保持しない別の例を見てみましょう。ペアレンタルコントロールの問題は、マシンの管理者ユーザーになれず、管理者ユーザーアカウントにペアレンタルコントロールを設定できないことです。

私の提案は、単に次のことをすることです。

chmod 600 /Applications/Trillian.app ; chown `whoami`:staff /Applications/Trillian.app

これにより、誰も実行できなくなりますが、自分のものとしてマークされます

それを実行するには、

sudo /Applications/Trillian.app/Contents/MacOS/Trillian

これは上記の600(rw- --- ---)アクセス許可を超えており、実行するには管理者パスワードを入力する必要があります。

また、setuidビットを調べて、それが役立つかどうかを確認することもできます(つまり、アプリを別のユーザーとして実行する)。


ちなみに、上記の「whoami」には、その両側に重大なアクセントまたはバックティックが必要です。このWebサイトのハッキング対策は、これらのマークを削除しました。
ジョン

2
一定。気軽に編集ボタンを押して、修正方法を確認してください。
ジェイソンサラズ

1

独自のApple IDを使用して個別のユーザーアカウントを設定したり、保護者の制限がある電子メールを設定したり、電子メールをまったく設定しないことはどうですか。アプリは異なるアカウントで共有できます。あなたの子供の年齢によっては、彼らが管理者の能力、つまりあなたのアカウントを持っている場合、彼らは意味を持たずにあなたのアカウントを傷つけることができるかもしれません。あなたが管理者である場合、あなたは彼らが彼らのアカウントで何ができるかを制御できます。


1

個別のアカウントがこの問題の解決策です。

電子メールは明らかなものかもしれませんが、いくつかの重要なファイル、ブックマーク、または開いている銀行のタブなどがあり、子供がランダムに削除/開く/混乱するのと同じくらい悪いかもしれません。

個別のアカウント(管理者として保護者のみ)を使用すると、アプリケーションにすべてのユーザーがアクセスできる場合でも、全員のファイル、メール、設定などを個別に保持できます。

ユーザーXがメールアプリケーションを使用している場合、ユーザーのメールとアカウント設定はログインしている場合にのみアクセスできます。ユーザーYがメールを開くと、両方が同じメールアプリケーションを使用していても、独自のアカウント/メールを持ちます。

大人用の共有アカウントと、子供用の別のアカウント、または各人用の個別のアカウントがある場合があります。別のアカウントでは、コンピューターを離れるときに(スクリーンセーバー経由で、またはログイン画面に戻るように)コンピューターをロックする必要があります。しかし、あなたが忘れたとしても、子供はあなたのものではなく自分のアカウント(自分のブックマーク、ゲームファイル、ハイスコア、ドキュメントなどを保存)を使用することをお勧めします。ブラウザーを最後に使用した人からfacebookからログアウトする必要がないという単純なものです(各アカウントには、Gmail、facebook、icloudなどにログインしたユーザーを記憶する独自のブラウザー設定があります)。

また、システム環境設定の保護者による制限を使用して、一部のユーザーが特定のアプリケーション、ウェブサイトなどにアクセスできないようにすることもできます。


0

Macアプリブロッカー

まさにあなたが求めていることをします。彼らのウェブサイトから:

Mac App Blockerを使用すると、Mac上の各アプリケーションをパスワードで保護できます。アプリとMacを安全に保ちます。保護されたアプリケーションを自動的に終了するようにタイムアウト値を設定すると、コンピューターを無人で置いても保護されたままになります。


異なる質問に対する回答は、単なるリンク以上のものである必要があります。リンクを含めることはできますが、回答に要約または抜粋してください。その答えは、答えを独立させることです。
nohillside

このリンクの文をコピーアンドペーストから落としてくれた@Ian C.に感謝します。
ダン

0

クイックでダーティ:ディスクユーティリティを開き、アプリケーションフォルダーにパスワードで保護されたディスクイメージを作成し、保護したいアプリをそこに移動します。ログインするたびにパスワードを使用するために一度パスワードを入力する必要があります。その後、同じアカウントのユーザーがそれらのアプリにアクセスせずにコンピューターを使用できるように、ディスクイメージをアンマウントできます。


0

これを達成するためにアプリを使用したい場合、「無料」の範囲にはあまり選択肢がないようです。AppLockerとAppCryptでは、無料版でロックできるアプリは1だけです。他にも、15日間ほど無料で試用できるアプリがいくつかあります。それ以外の場合は、有料オプションがあります。無料のソリューション(1つ以上のアプリ)を使用する方法は、Kelvinスクリプトメソッドを使用することです。

私が見つけたアプリは次のとおりです。

無料(ミアム):

AppLocker

AppCrypt

無料試用版:

iLocker

MacAppBlocker

有料:

iLock

ロックプロ

個人的には、AppLockerを試しただけで使用しています。必要なアプリは1つだけなので、無料版は問題ありません。非常に使いやすく、堅実です。オススメ!


見つけたアプリケーションの詳細をさらに確認すると、回答の価値が高まります。
nohillside

おかげで@nohillside :)
illustribe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.