개별 앱을 비밀번호로 보호하는 방법이 있습니까? 메일 보호에 관심이 있습니다. 이것은 보안에 관한

특정 Mac 응용 프로그램을 암호로 보호 할 수 있습니까?

예를 들어, 새 이메일을 검색 할 수 없어도 이미 수신 된 모든 이메일을 읽을 수 있기 때문에 메일 보호에 관심이 있습니다.

이것은 보안에 관한 질문이 아닙니다. 가족 내에서 기기를 공유하는 것입니다. 중요한 정보가 없습니다. 내 여자 아이나 아들이 실수로 내 계정에서 이메일을 보내거나 일부가 읽지 않도록하려고합니다.



답변

Paul의 답변에 대한 귀하의 의견과 관련하여 잠시 동안 컴퓨터를 떠나려고합니다. 컴퓨터를 잠 가야합니다. 기간.

시스템 환경 설정을 열고 보안 (상단, 마지막에서 마지막 옵션)을 클릭 한 다음, “일반”탭에서 “잠자기 또는 화면 보호기가 시작된 후 즉시 암호 필요”확인란을 선택하십시오.

그런 다음 컴퓨터에서 멀어 질 때

Ctrl ⌃+ Shift ⇧+Eject ⏏

(추가 메모 : 위의 줄을 클릭하십시오.)

Mac을 잠그십시오. 저리가. 비밀번호를 입력하여 잠금을 해제하십시오. 안전한 콘솔.


답변

계정에서 자녀 보호 기능을 설정 한 다음 사용할 수있는 앱을 결정할 수 있습니다.

또는 화면 보호기에서 암호를 설정하고 화면 보호기를 활성화하기위한 적절한 “핫 코너”를 정의 할 수도 있습니다. 이렇게하면 컴퓨터에서 멀어 질 때 마우스를 핫 코너로 이동하여 화면을 효과적으로 잠글 수 있습니다. 액세스하려면 암호가 필요합니다.


답변

스크립트를 사용하여 가능합니다.

먼저, 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

다음으로 Script Editor를 시작하고 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”가 스크립트 메뉴에 나타납니다. 암호를 실행할 때마다 암호가 필요합니다 (일부 설치 관리자와 동일). 실행이 끝나면 일반 메일 응용 프로그램에 대한 액세스가 비활성화됩니다. 스크립트를 한 번 실행 한 다음 Mail 앱을 실행 해보십시오. 실행되지 않습니다. 이는 컴퓨터의 모든 사용자가 사용자뿐만 아니라 메일을 직접 실행할 수 없음을 의미합니다.

Mail이 정상적으로 다시 실행되도록하려면 터미널에서 다음 명령을 실행하십시오.

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

“스도”를 생략 할 수 있습니다. “작업이 허용되지 않음”이 표시되면 sudo를 사용하십시오. sudo는 권한있는 작업을 허용하기 위해 암호를 요구합니다.

경고

  1. chmod를 수행하기 위해 위의 “sudo”명령이 필요하지 않은 경우, 정통한 사용자는 Mail 앱을 다시 활성화하는 방법을 알아낼 수 있습니다. MacOS / Mail 파일의 소유자를 루트로 변경하여 보안을 강화할 수 있습니다. 그것은 독자를위한 연습으로 남겨졌습니다.
  2. 누군가가 메일 앱을 컴퓨터에 복사 할 수있는 경우 (예 : USB 드라이브를 통해) 여전히 메일에 액세스 할 수 있습니다.
  3. 루비 스크립트는 대부분의 OS X 응용 프로그램 번들에서 작동합니다. 루트 (특권 사용자)로 특정 작업을 수행하고 있기 때문에 수행중인 작업을 실제로 알지 않는 한 루비 스크립트를 조정하지 않는 것이 좋습니다. 애플 스크립트 코드를 수정하는 것은 무해해야합니다. 그러나 앱을 직접 다시 실행할 수 있도록 chmod 명령을 조정하는 방법을 알아야합니다.
  4. Applescript 파일의 앱 경로에 공백이나 다른 특수 문자가있는 경우 전체 경로를 작은 따옴표로 묶는 것과 같은 작업을 수행해야합니다.
  5. 편집 : 사용자 Austin은이 절차가 .emlx 파일을 보호하지 않을 것을 제안했습니다. 실제로 메일 앱을 사용하지 않으므로 데이터 저장소에 익숙하지 않습니다. 이 솔루션은 사용자 데이터를 숨기지 않기 때문에 모든 앱에 유사한 문제가 적용됩니다.

편집병

루비를 아는 사람이 로그인 한 사용자에게 접근 할 수 있다면, 일부 시간 동안 루트로 실행되므로 스크립트를 실행할 때 모든 종류의 혼란을 초래하는 방식으로 루비 스크립트를 수정할 수 있습니다. 이런 일이 발생할 수 있다고 생각되면 루트 만 스크립트를 쓸 수 있어야합니다. 또한 누군가가 스크립트를 자신의 스크립트로 바꾸지 않도록해야합니다. 사용자가 폴더를 쓸 수있는 경우이를 수행 할 수 있습니다. 이러한 경고로 인해 겁이 나기 시작하고 자신을 보호하는 방법을 모른다면이 해결 방법을 잊고 컴퓨터를 떠날 때 화면을 잠그는 것을 잊지 마십시오.


답변

예-메일을 비밀번호로 보호하는 몇 가지 방법이 실용적입니다. 당신이 어린이 / 가족에 대해 우려하고 있기 때문에, 가장 쉬운 단지에 자녀를 사용하는 응용 프로그램 제한 할 수 있습니다 귀하의 계정을. 어떤 시점에서 그들은 자신의 계정을 가질 수 있으며 전체 계정을 잠글 수 있습니다.


다음은 앱을 잠 그거나 데이터 앱이 액세스 할 수있는 일반적인 경우에 적용 가능한 옵션입니다.

  1. 계정을 보호 된 보호자 계정으로 만들고 허용하려는 앱을 허용 목록에 추가하십시오. 금지 된 앱을 실행할 수 있도록 별도의 관리자 / 암호를 알고 있습니다. Voila-원하는 모든 앱이 이제 비밀번호로 보호됩니다.

  2. 응용 프로그램을 암호로 보호 된 디스크 이미지로 이동 한 다음 응용 프로그램 폴더에 저장할 별칭을 만듭니다. (원래 앱을 먼저 삭제) 프로그램이 앱에 액세스하려고하면 암호를 입력하면 파인더가 디스크 이미지를 마운트합니다. 앱을 다시 실행할 수 있도록 스크립트를 실행하기 전에 권한 변경 및 기타 기술을 사용하여 암호를 요구하도록 스크립트를 작성할 수도 있습니다.

  3. 암호로 보호 된 암호화 된 디스크 이미지 에 응용 프로그램 데이터를 저장하십시오 . 여기에 몇 가지 일반적인 앱과 사용자 데이터를 저장하는 폴더가 있습니다 .

  4. 메일 앱을 이동식 드라이브에 저장하십시오. USB 드라이브에서 앱을 실행하기위한 독립형 앱 패키지를 만드는 방법이 있습니다.

앱 내에서 프레임 워크를 사용하는 스포트라이트 및 기타 앱과 같은 것은 이미지가 마운트 될 때까지 제대로 작동하지 않습니다. 사용자 암호가 안전하다면 (데이터를보고 싶지 않은 사람들로부터) 디스크 이미지 암호를 키 체인에 저장할 수 있습니다.

또한-데이터 파일을 보호하지 않는 한 모호한 보안 만 가능하며 다른 곳에서 데이터를 복사하거나 스포트라이트 또는 텍스트 편집과 같은 다른 앱에서 데이터를 볼 수 있습니다. 또한 다른 컴퓨터에서 메일 (또는 기타) 앱의 사본을 가져올 수 있습니다. 관리자가 해당 시스템에서 처음 실행할 때 응용 프로그램 폴더를 축복하면 응용 프로그램 폴더뿐만 아니라 응용 프로그램 폴더가 어디에서나 실행될 수 있습니다.

따라서 # 3이 유일한 길입니다. 데이터를 잠그고 앱에 대해 걱정하지 마십시오.


답변

다음은 원하는 작업을 수행하는 Mac 유틸리티입니다. 개별 앱을 비밀번호로 보호 할 수 있습니다. 또한 선택한 시간 동안 비활성화 된 후 응용 프로그램을 종료하는 시간 초과 값을 설정할 수 있습니다.

맥 앱 블로커


답변

그것은 내가 알고있는 오래된 스레드이지만, 당신과 같은 문제가 있습니다 … 해결책은 다음과 같습니다. iLock이라는 응용 프로그램. 선택한 후 비밀번호로 단일 앱을 보호합니다. 간단하고 효율적이며 완전 무료입니다!
https://www.macupdate.com/app/mac/49881/ilock


답변

흠. 나는 이것을 잠시 동안하고 싶었다. 예를 들어 Skype 또는 Trillian과 같은 프로그램과 채팅하라는 메시지가 표시되지 않는 한 로컬 파일을 유지하지 않는 또 다른 예를 들어 보겠습니다. 자녀 보호 기능의 문제점은 컴퓨터에서 관리자가 될 수없고 관리자 사용자 계정에 자녀 보호 기능이 있다는 것입니다.

내 제안은 단순히 다음을 수행하는 것입니다.

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

이것은 누군가가 그것을 실행하지 못하게하지만 당신의 것으로 표시합니다.

그런 다음 실행

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

이것은 위의 600 (rw- — —) 액세스 권한을 초과하므로 관리자 암호를 입력하여 실행해야합니다.

setuid 비트를 조사하여 도움이되는지 확인할 수도 있습니다 (즉, 앱을 다른 사용자, 즉 다른 앱으로 실행하도록 설정).