Чи існує спосіб захисту паролем окремих програм?


27

Чи можливо захистити паролем певний додаток Mac?

Наприклад, мені цікаво захистити пошту, оскільки навіть якщо ви не можете отримати нові електронні листи, ви все ще можете прочитати всі вже отримані повідомлення.

Це не питання про безпеку. Йдеться про обмін пристроєм у сім'ї. У мене немає важливої ​​інформації. Я просто хочу уникати, щоб моя дівчинка чи син ненароком надсилали електронні листи з мого облікового запису або не дозволяли їм прочитати деякі з них.


30
Це звучить як приклад проблеми XY . Ви хочете не допустити, щоб люди переслідували вашу електронну пошту (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
→ Рабскатран: ваша проблема є основною проблемою безпеки. Ваша потреба є основною: контролюйте, хто читає ваші файли (що включає вашу збережену електронну пошту). Якщо я справедливо здогадався про вашу проблему ☂, я би проголосував за пораду Майка: один рахунок для всіх ! Це безкоштовно :).
дан

Відповіді:


27

Щодо Вашого коментаря до відповіді Павла, бажаючи на мить залишити комп’ютер: вам потрібно заблокувати комп’ютер. Період.

Відкрийте Налаштування системи, натисніть Захист (верхній рядок, другий до останнього параметра), на вкладці "Загальні" встановіть прапорець "Вимагати пароль [негайно] після початку сну або заставки".

Потім, коли ви йдете піти від комп'ютера;

Ctrl ⌃+ Shift ⇧+Eject ⏏

(Додаткові примітки. Клацніть вищевказаний рядок.)

Блокуйте свій Mac. Іти геть. Поверніться, введіть свій пароль, щоб розблокувати його. Захищена консоль.


3
+1 Пол першим згадав про це у коментарі під своєю власною відповіддю, але оскільки він ще не включив його у власну відповідь, я проголосую за це. Я хотів би, щоб я міг дати це +3 заyou have to lock your computer. Period.
Остін

-1 оскільки це зараз відповідь на поставлене запитання. ОП виразно запитує про захист паролем окремих додатків у багатокористувацькому обліковому записі. Інший сценарій: Є ще один адміністратор, який може легко скинути ваш пароль і ввійти в систему, як ви, і отримати доступ до всіх своїх програм.
leymannx

Я звернувся до цього в своєму першому реченні. Крім того, якщо є інший локальний обліковий запис адміністратора, ви не можете захистити додаток паролем від них. Це просто неможливо.
Джейсон Салаз

10

Ви можете просто встановити батьківський контроль в обліковому записі, а потім визначити, які програми можна використовувати.

Крім того, ви можете встановити пароль на заставці, а також визначити відповідний «гарячий куточок» для активації заставки - таким чином, коли ви відходите від комп'ютера, ви можете просто перемістити мишу в гарячий кут, щоб ефективно заблокувати екран. що для отримання доступу йому потрібен пароль.


Ні, я хочу, щоб я могла залишити свій комп'ютер на кілька хвилин, і впевнена, що ніхто не може читати мої отримані електронні листи (наприклад, якщо пошта ще не запущена). Але в цілому, що ніхто не зможе запустити додаток, зробити якісь речі і кинути роботу під час моєї відсутності.
П'єр Уотлет

10
У цьому випадку просто встановіть «загрозливий куточок» у заставці та вимагайте пароль, щоб вийти із заставки. Залишивши свій Mac, натисніть мишу в гарячий кут, щоб заблокувати екран.
Пол Р

або встановіть короткий час заставки для заставки короткою - пошта не обов’язково буде єдиним додатком, яке ви хочете приховати
user151019

Тож неможливо встановити пасаж у додатку ...
П'єр Уотлет

1
@Paul +1 Я рекомендую відредагувати чудову пропозицію щодо встановлення захищеної паролем заставки прямо у вашу відповідь.
Остін

9

Це можливо за допомогою скриптів.

По-перше, слід включити меню скриптів на панелі меню OS X. Прочитайте розділ "Меню скриптів" тут: Увімкніть меню сценаріїв

Тепер відкрийте папку «Бібліотека / скрипти» та створіть файл з назвою «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" з'явиться у вашому меню сценарію. Кожен раз, коли ви запускаєте його, він запитає у вас пароль (як і деякі інсталятори). Після запуску він заборонить доступ до звичайної програми Mail. Тому запустіть сценарій один раз, а потім спробуйте запустити додаток Mail. Він не працюватиме. Зауважте, що це означає, що ВСІМ користувачам на вашій машині буде заборонено працювати безпосередньо з Поштою, а не лише з вашим користувачем.

Якщо ви коли-небудь хочете дозволити Почті знову нормально працювати, запустіть цю команду на Терміналі:

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

Можливо, ви зможете опустити "судо". Використовуйте sudo, якщо ви отримуєте "Операція не дозволена". Зауважте, що sudo попросить вас пароль, щоб дозволити привілейовану роботу.

Коваджі

  1. Якщо вам не потрібна команда "sudo", щоб виконати chmod, це означає, що кмітливий користувач може з'ясувати, як знову включити додаток Mail. Ви можете посилити безпеку, змінивши власника файлу MacOS / Mail на root. Це залишається як вправа для читача.
  2. Якщо хтось зможе скопіювати додаток Mail на ваш комп'ютер (наприклад, через USB-накопичувач), він все одно може отримати доступ до вашої пошти.
  3. Рубіновий сценарій призначений для роботи для більшості пакетів додатків OS X. Я не рекомендую налаштовувати сценарій рубіну, якщо ви дійсно не знаєте, що ви робите, тому що він виконує певні речі як root (привілейований користувач). Налаштування коду яблука має бути нешкідливим; але ви повинні знати, як налаштувати команду chmod, щоб зробити ваш додаток безпосередньо знову запущеним.
  4. Якщо шлях до програми у файлі applescript має пробіли або інші спеціальні символи, вам доведеться зробити щось на зразок розміщення одинарних лапок по всьому шляху.
  5. Редагувати: Користувач Остін запропонував, що ця процедура не захищає файли .emlx. Я фактично не використовую додаток Mail, тому я не знайомий зі зберіганням даних. Подібні проблеми стосуються всіх програм - оскільки це рішення не приховує даних користувачів.

Параноїя

Якщо хтось, хто знає рубін, отримує доступ до вашого зареєстрованого користувача, він може змінити сценарій ruby ​​таким чином, що він спричиняє всілякі загрози під час запуску сценарію, оскільки він працює як корінь частину часу. Якщо ви думаєте, що це може статися, вам слід зробити сценарій, котрий можна записувати тільки під коренем. Вам також доведеться переконатися, що хтось не замінить сценарій на свій власний - вони можуть це зробити, якщо папку ви можете записати. Якщо ви починаєте лякатись цими застереженнями і не знаєте, як захистити себе, вам, мабуть, слід забути про це рішення і просто пам'ятати, щоб заблокувати екран, коли виходите з комп'ютера.


Вау, 3 оновлення за 4 години? Я не очікував, що занадто багато людей використовуватиме такий злом, тим більше, що вам потрібно створити один яблучний скрипт для кожного додатка, який ви хочете захистити. Мені хотілося б почути, як люди використовують моє рішення, навіть якщо тільки для вивчення нових хитрощів.
Келвін

8
-1, але сподіваюся, це не сприймається особисто. Мені дуже подобається рівень деталізації тут, і ясна річ, що багато питань задумалося про це, але я думаю, що це рішення дає небезпечне помилкове відчуття безпеки. Одне величезне застереження, яке ви не згадували, - це те, що це не перешкоджає доступу до .emlxфайлів пошти із звичайним текстом, що зберігаються в ~/Library/Mail.
Остін

3
@Austin, ти маєш право на свій голос, але я не розумію твоєї причини. Я думаю, що мої застереження та параноїа секції повинні бути достатніми, щоб вказати, що це не означає надійне рішення - це лише стримуючий характер. Я додав ваш застереження, але це по суті та сама ідея за попередженням №2. Також ОП заявила, що йому / вона не байдуже, щоб інша людина читала "вже отримані електронні листи".
Келвін

3
Я в захваті від багатьох складних речей, які я ніколи не використовую в реальному житті. Це один - молодший Келвін - ви на цьому заробили +1. :-) Я сумніваюся, що це врешті-решт найкраща відповідь на це запитання, але я сподіваюся, що вона отримає почесну згадку.
bmike

Я думаю, ви нерозумієте цю частину питання (надано, можливо, це можна було б сформулювати краще). @Rabskatran - будь ласка, виправте мене, якщо я помиляюся, але я досить впевнений, що ОП намагалася пояснити причину бажання захистити додаток паролем. Перефразовуючи, навіть якщо сищик не зможе отримати нову пошту (імовірно тому , що пароль облікового запису користувача був збережений в пошті), вони будуть мати можливість читати існуючі завантажену пошту, і саме тому ЗР хотів захист пароля .
Остін

5

Так - кілька способів захисту паролем вашої пошти практичні. Оскільки ви стурбовані дітьми / членами сім'ї, найпростіше може бути лише обмежити ці програми, використовуючи батьківський контроль у своєму обліковому записі. У якийсь момент вони можуть мати свої власні акаунти, а ви можете заблокувати весь свій рахунок.


Ось варіанти, які я вважаю корисними для загального випадку блокування програм або даних, до яких можуть отримати доступ дані.

  1. Зробіть свій обліковий запис захищеним батьківським обліковим записом і в білому списку додайте програми, які ви хочете дозволити. Ви будете знати окремого користувача / пароль адміністратора, щоб дозволити запуск заборонених програм. Voila - будь-яка програма, яку ви хочете, захищена паролем.

  2. Перемістіть додаток у зображення диска, захищеного паролем, а потім зробіть псевдонім для зберігання у папці Програми. (спочатку видаляючи оригінальний додаток) Коли будь-яка програма намагається отримати доступ до програми, ви отримуєте шанс ввести пароль, а пошук знайде зображення диска. Ви також можете змінити дозвіл на сценарій та інші технічні хитрощі, щоб вимагати пароль перед запуском сценарію, щоб програма знову запускалася.

  3. Зберігайте дані програми у зашифрованому паролем образі диска . Ось декілька поширених додатків та папок, де зберігаються дані користувачів .

  4. Зберігайте свою поштову програму на знімному накопичувачі - котеджне господарство розробляє окремі пакети програм для запуску програм із USB-накопичувачів.

Пам’ятайте, що такі речі, як прожектор та інші програми, що використовують рамки в додатках, працюватимуть не так добре, поки зображення не змонтуються. Якщо ваш пароль користувача захищено (від людей, яким ви не хочете бачити дані), ви можете зберігати паролі зображень диска у брелоку.

Крім того - якщо ви не захищаєте файли даних - це лише захист від незрозумілості, і хтось може скопіювати ваші дані в іншому місці або просто подивитися на них у центрі уваги або інших програм, наприклад редагування тексту. Вони також могли принести копію пошти (або будь-якої іншої) програми з іншого комп'ютера. Програми можуть працювати з будь-якого місця, а не лише з папки «Програми», коли користувач адміністратора благословить їх для першого запуску в цій системі.

Тому №3 - єдиний шлях. Блокуйте свої дані та не турбуйтеся про додатки.


5

Ось утиліта Mac, яка буде робити те, що ви просите. Він може захищати паролем окремі програми. Крім того, ви можете встановити значення тайм-ауту, яке вийде з програми після неактивності протягом вибраного часу.

Mac Blocker App


1
Mac Blocker App - це саме те, що він шукає. Як техніка Apple, ми протягом багатьох років отримуємо цей запит на цю здатність (пам’ятаєте Oulook 2001?). Користувачі не стурбовані тим, що їхні діти чи співробітники будуть копати папки бібліотеки, щоб витягнути файли .emlx та прочитати їх. Це не суть - вони не проти дозволити іншим використовувати свій Mac, вони просто не хочуть, щоб вони читали електронні листи. Простий і простий. Блокувальник додатків Mac робить те, що робить, і це все, що потрібно для цього.

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- --- ---) дозволів доступу вище, і вам доведеться ввести пароль адміністратора, щоб запустити його.

Ви також можете заглянути в встановлений біт і побачити, чи це допомагає (змусити програму запуститись як інший користувач, іншими словами).


до речі, вищезгадані "whoami" повинні мати суворі акценти чи підставки з обох боків. Антизламні матеріали на цьому веб-сайті зняли ці позначки.
Джон

2
Виправлено. Не соромтеся натиснути редагування і подивіться, як я це виправив.
Джейсон Салаз

1

А як налаштувати окремі облікові записи користувачів з власним ідентифікатором apple, електронною поштою з батьківськими обмеженнями або взагалі без електронної пошти. Додатки можуть ділитися різними обліковими записами. Залежно від віку ваших дітей, якщо вони матимуть адміністраторську здатність, тобто ваш рахунок, вони можуть завдати шкоди вашому обліковому запису без жодного сенсу. Якщо ви є адміністратором, ви можете контролювати, що вони можуть робити зі своїм обліковим записом.


1

Окремі рахунки - це рішення цієї проблеми.

Електронна пошта може бути очевидною, але там будуть деякі важливі файли, або закладки, або відкриті банківські вкладки тощо, які можуть бути однаково поганими для дитини, щоб їх випадковим чином видалити / відкрити / зіпсувати.

Окремі облікові записи (лише батьки як адміністратори) означають, що ви можете зберігати окремі файли, електронні листи, налаштування тощо, навіть якщо програми доступні всім.

Якщо користувач X використовує програму Mail, їхні електронні листи та налаштування облікового запису доступні лише тоді, коли він увійшов у систему. Коли користувач Y відкриє Mail, вони матимуть власні облікові записи / пошту, навіть якщо обидва користуються однією програмою Mail.

У вас може бути спільний обліковий запис для дорослих, а також інший для дітей або індивідуальні акаунти для кожної людини. З окремими обліковими записами ви захочете заблокувати комп'ютер (через заставку або повернутися до екрана входу), коли залишите його. Але навіть якщо ви забудете, ваші діти захочуть скористатися власним обліковим записом (із власними закладками, зберегти файли гри, високі бали чи документи тощо), а не ваш, що допоможе запобігти випадковому доступу / пошкодженню. Навіть щось таке просте, як не потрібно виходити з facebook від того, хто востаннє використовував браузер (у кожного облікового запису є власні налаштування браузера, які пам’ятають, хто входить у Gmail, facebook, icloud тощо).

Ви також можете заборонити деяким користувачам отримувати доступ до певних програм, веб-сайтів тощо за допомогою батьківського контролю в системних налаштуваннях.


0

Mac Blocker App

Робить саме те, про що ви просите. З їх веб-сайту:

За допомогою Mac Blocker App ви можете захистити паролем EACH-програму на вашому Mac. Бережіть ваші програми та ваш Mac. Встановіть значення тайм-аута, щоб автоматично вийти із захищеної програми, щоб навіть коли ви залишаєте комп'ютер без нагляду, ви все ще захищені.


Відповіді на запитання різних повинні бути більше, ніж просто посилання. Добре включити посилання, але будь ласка, узагальнюйте або витягуйте його у відповіді. Ідея полягає в тому, щоб зробити відповідь самостійною.
nohillside

Дякуємо @Ian C. за те, що пропозиція цього посилання впала з копію-вставлення.
дан

0

Швидке та брудне: відкрийте дискові утиліти, введіть образ диска, захищений паролем, у папку ваших програм, перемістіть там будь-які програми, які ви хочете захистити. Вам потрібно буде ввести пароль один раз, щоб використовувати їх постійно, коли ви входите в систему, тоді ви можете просто відключити зображення диска, щоб люди в одному обліковому записі все ще могли використовувати ваш комп’ютер без доступу до цих додатків.


0

Якщо ви хочете використовувати додаток для досягнення цього, здається, що на вибір "вільного" діапазону вибору не дуже багато. AppLocker і AppCrypt дозволяють заблокувати лише 1 додаток у безкоштовній версії, а є кілька інших додатків, які пропонують безкоштовні випробування протягом 15 днів. Інакше є платні варіанти. Я думаю, шлях для вільного рішення (більше 1 додатка) повинна йти з Кельвіном «s методом сценарію .

Ось додатки, які мені вдалося знайти:

Безкоштовно (mium):

AppLocker

AppCrypt

Безкоштовні випробування:

iLocker

MacAppBlocker

Оплачено:

iLock

Блокування Pro

Особисто я тільки спробував і досі користуюся AppLocker. Мені це потрібно лише для одного додатку, тому для мене безкоштовна версія просто чудова. Дуже простий у використанні і твердий. Рекомендовано!


Ще деякі подробиці про знайдені вами додатки збільшать значення вашої відповіді.
nohillside

ок, дякую @nohillside :)
illustribe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.