Можно ли защитить паролем определенное приложение Mac?
Например, я заинтересован в защите почты, потому что даже если вы не можете получить новые электронные письма, вы все равно можете прочитать все уже полученные электронные письма.
Это не вопрос безопасности. Речь идет о совместном использовании устройства в семье. У меня нет важной информации. Я просто хочу, чтобы моя девушка или сын случайно не отправили электронные письма с моей учетной записи или помешали им прочитать некоторые из них.
Что касается вашего комментария к ответу Пола, который хочет на мгновение оставить свой компьютер: вы должны заблокировать свой компьютер. Период.
Откройте «Системные настройки», нажмите «Безопасность» (верхняя строка, предпоследняя опция), на вкладке «Общие» установите флажок «Требовать пароль [немедленно] после начала сна или заставки».
Затем, когда вы уходите от компьютера;
(Дополнительные примечания: щелкните строку выше.)
Заблокируйте свой Mac. Уходи. Вернитесь, введите свой пароль, чтобы разблокировать его. Защищенная консоль.
you have to lock your computer. Period.
Можно с помощью скриптов.
Во-первых, вы должны включить меню сценариев в строке меню 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
Сохраните файл в Library/Scripts как «mail_with_password», убедившись, что формат файла — «Script».
Теперь в меню вашего скрипта появится «mail_with_password». Каждый раз, когда вы запускаете его, он будет запрашивать ваш пароль (как это делают некоторые установщики). После завершения работы он отключит доступ к обычному почтовому приложению. Поэтому запустите скрипт один раз, а затем попробуйте запустить приложение Mail. Это не будет работать. Обратите внимание, что это означает, что ВСЕ пользователи на вашем компьютере не смогут запускать Mail напрямую, а не только ваш пользователь.
Если вы когда-нибудь захотите, чтобы Mail снова работал в обычном режиме, выполните эту команду в Терминале:
sudo chmod +x /Applications/Mail.app/Contents/MacOS/Mail
Возможно, вы сможете опустить «sudo». Используйте sudo, если вы получаете «Операция не разрешена». Обратите внимание, что sudo запросит у вас пароль, чтобы разрешить привилегированную операцию.
Предостережения
Паранойя
Если кто-то, кто знает ruby, получит доступ к вашему вошедшему в систему пользователю, он может изменить сценарий ruby таким образом, что это приведет к всевозможным разрушениям, когда вы запускаете сценарий, поскольку часть времени он работает от имени пользователя root. Если вы считаете, что это может произойти, вы должны сделать сценарий доступным для записи только пользователю root. Вы также должны будете убедиться, что кто-то не заменит сценарий своим собственным — они могут сделать это, если вы имеете право на запись в папку. Если вы начинаете пугаться этих предупреждений и не знаете, как защитить себя, вам, вероятно, следует забыть об этом решении и просто не забыть заблокировать экран, когда вы отходите от компьютера.
.emlx
почтовым файлам с открытым текстом, хранящимся в файлах ~/Library/Mail
.chmod
обойти этот скрипт ruby. Как верно диагностировал Остин, проблема гораздо серьезнее и посложнее.Вы можете просто установить родительский контроль для учетной записи, а затем определить, какие приложения можно использовать.
В качестве альтернативы вы можете установить пароль на заставку, а также определить подходящий «горячий угол» для активации заставки — таким образом, когда вы отходите от компьютера, вы можете просто переместить мышь в горячий угол, чтобы эффективно заблокировать экран, например что для доступа требуется пароль.
Да, существует несколько способов защитить вашу почту паролем. Поскольку вы беспокоитесь о детях/членах семьи, проще всего просто ограничить эти приложения с помощью родительского контроля в вашей учетной записи. В какой-то момент у них могут быть свои учетные записи, и вы можете заблокировать всю свою учетную запись.
Вот варианты, которые я считаю пригодными для общего случая блокировки приложений или доступа к данным приложений.
Сделайте свою учетную запись защищенной родительской учетной записью и добавьте в белый список приложения, которые вы хотите разрешить. Вы будете знать отдельного пользователя/пароль администратора, чтобы разрешить запуск запрещенных приложений. Вуаля — любое приложение, которое вы хотите, теперь защищено паролем.
Переместите приложение в защищенный паролем образ диска, а затем создайте псевдоним для хранения в папке «Приложения». (сначала удалив исходное приложение) Когда какая-либо программа пытается получить доступ к приложению, вы получаете возможность ввести пароль, и средство поиска смонтирует образ диска. Вы также можете написать сценарий изменения разрешений и другие технические хитрости, чтобы потребовать пароль перед запуском сценария, чтобы снова запустить приложение.
Храните данные приложения в зашифрованном образе диска, защищенном паролем . Вот некоторые распространенные приложения и папки, в которых они хранят пользовательские данные .
Храните почтовое приложение на съемном диске — существует кустарная промышленность по созданию автономных пакетов приложений для запуска приложений с USB-накопителей.
Имейте в виду, что такие вещи, как Spotlight и другие приложения, использующие фреймворки внутри приложений, не будут работать так хорошо, пока образы не будут смонтированы. Если ваш пользовательский пароль защищен (от людей, которым вы не хотите видеть данные), вы можете хранить пароли образов дисков в цепочке ключей.
Кроме того, если вы не защитите файлы данных, это всего лишь безопасность из-за неизвестности, и кто-то может скопировать ваши данные в другое место или просто просмотреть их из прожектора или других приложений, таких как редактирование текста. Они также могут принести копию почтового (или любого другого) приложения с другого компьютера. Приложения могут запускаться из любого места, а не только из папки «Приложения», как только пользователь-администратор благословит их на первый запуск в этой системе.
Поэтому № 3 — единственный путь. Заблокируйте свои данные и не беспокойтесь о приложениях.
Вот утилита для Mac, которая сделает то, о чем вы просите. Он может защитить паролем отдельные приложения. Кроме того, вы можете установить значение тайм-аута, которое закроет приложение после того, как оно неактивно в течение выбранного времени.
Отдельные аккаунты — решение этой проблемы.
Электронная почта может быть очевидным, но будут некоторые важные файлы, или закладки, или открытые банковские вкладки и т. д., которые могут быть столь же плохи для ребенка, если он случайно удаляет/открывает/возится с ними.
Отдельные учетные записи (только с родителями в качестве администраторов) означают, что вы можете хранить все файлы, электронные письма, настройки и т. д. отдельно, даже если приложения доступны всем.
Если пользователь X использует приложение Mail, его электронные письма и настройки учетной записи доступны только после входа в систему. Когда пользователь Y открывает Mail, у него будут свои собственные учетные записи/почта, даже если оба используют одно и то же приложение Mail.
У вас может быть общая учетная запись для взрослых и еще одна для детей или отдельные учетные записи для каждого человека. С отдельными учетными записями вам нужно будет заблокировать компьютер (через заставку или вернуться к экрану входа), когда вы покидаете его. Но даже если вы забудете, ваши дети захотят использовать свою собственную учетную запись (со своими закладками, сохраненными игровыми файлами, рекордами, документами и т. д.), а не вашу, что поможет предотвратить любой случайный доступ/повреждение. Даже что-то настолько простое, как отсутствие необходимости выходить из Facebook от того, кто последним использовал браузер (каждая учетная запись имеет свои собственные настройки браузера, которые запоминают, кто вошел в Gmail, facebook, icloud и т. д.).
Вы также можете запретить некоторым пользователям доступ к определенным приложениям, веб-сайтам и т. д. с помощью Родительского контроля в Системных настройках.
Я знаю, что это старая тема, но у меня была такая же проблема, как и у вас… Вот решение: приложение под названием 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 и посмотреть, поможет ли это (другими словами, заставить приложение работать от имени другого пользователя).
Как насчет настройки отдельных учетных записей пользователей с их собственным идентификатором Apple, электронной почты с родительскими ограничениями или вообще без электронной почты. Приложения могут быть общими для разных учетных записей. В зависимости от возраста ваших детей, если у них есть права администратора, то есть ваша учетная запись, они могут нанести вред вашей учетной записи без намерения. Поскольку вы являетесь администратором, вы можете контролировать, что они могут делать со своей учетной записью.
Быстро и грязно: откройте дисковые утилиты, создайте защищенный паролем образ диска в папке приложений, переместите туда любые приложения, которые вы хотите защитить. Вам нужно будет ввести пароль один раз, чтобы использовать их каждый раз, когда вы входите в систему, затем вы можете просто размонтировать образ диска, чтобы люди с той же учетной записью могли по-прежнему использовать ваш компьютер без доступа к этим приложениям.
Если вы хотите использовать приложение для достижения этой цели, кажется, что в «бесплатном» диапазоне не так много выбора. AppLocker и AppCrypt позволяют заблокировать только 1 приложение в бесплатной версии, и есть несколько других приложений, которые предлагают бесплатные пробные версии на 15 дней или около того. В противном случае есть платные варианты. Я предполагаю, что способ получить бесплатное решение (для более чем 1 приложения) - это использовать метод сценария Кельвина .
Вот приложения, которые мне удалось найти:
Бесплатно(миум):
Бесплатные пробные версии:
Оплаченный:
Лично я только что попробовал и до сих пор использую AppLocker. Мне это нужно только для одного приложения, поэтому для меня бесплатная версия просто идеальна. Очень прост в использовании и надежен. Рекомендуемые!
Блокировщик приложений для Mac
Делает именно то, что вы просите. С их сайта:
С помощью Mac App Blocker вы можете защитить паролем КАЖДОЕ приложение на вашем Mac. Защитите свои приложения и свой Mac. Установите значение тайм-аута для автоматического выхода из защищенного приложения, поэтому, даже если вы оставляете компьютер без присмотра, вы по-прежнему защищены.
Остин
What's the best way to protect my email from snooping?
то, что ответ на этот вопрос будет заключаться в том, что лучше всего полностью предотвратить использование вашей учетной записи неавторизованными пользователями, например, запрашивая пароль для деактивации заставки или после выхода системы из спящего режима.Ян С.
~/Library/Application Support
— если кому-то понадобится ваша электронная почта, он будет знать, что нужно просто взять оттуда файлы и сбежать с ними.Остин
.emlx
файлы на самом деле находятся в~/Library/Mail
, но ваша точка зрения понятна.bmike
Рабскатран
bmike
Дэн