可以使用密码保护特定的Mac应用程序吗?
例如,我对保护邮件感兴趣,因为即使您无法检索新电子邮件,您仍然可以阅读所有已经收到的电子邮件。
这不是关于安全性的问题。这是关于在家庭中共享设备。我没有重要信息。我只是想避免我的女儿或儿子从我的帐户中意外发送电子邮件或阻止他们阅读其中的一些电子邮件。
~/Library/Application Support
-如果有人想要您的电子邮件,他们会知道只是从那里抓取文件并从中取走。
可以使用密码保护特定的Mac应用程序吗?
例如,我对保护邮件感兴趣,因为即使您无法检索新电子邮件,您仍然可以阅读所有已经收到的电子邮件。
这不是关于安全性的问题。这是关于在家庭中共享设备。我没有重要信息。我只是想避免我的女儿或儿子从我的帐户中意外发送电子邮件或阻止他们阅读其中的一些电子邮件。
~/Library/Application Support
-如果有人想要您的电子邮件,他们会知道只是从那里抓取文件并从中取走。
Answers:
关于您对Paul的回答的评论,想离开您的计算机片刻:您必须锁定计算机。期。
打开“系统偏好设置”,单击“安全性”(第一行,倒数第二个选项),在“常规”选项卡下,选中“在睡眠或屏幕保护程序启动后立即输入密码”复选框。
然后,当您离开计算机时;
(附加说明:单击上面的行。)
锁定您的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
将文件另存为“ mail_with_password”到“库/脚本”中,确保文件格式为“脚本”。
现在,“ mail_with_password”将出现在脚本菜单中。每次您运行它时,它都会要求您输入密码(就像某些安装程序一样)。完成运行后,它将禁用对常规Mail应用程序的访问。因此,请运行一次脚本,然后尝试运行邮件应用程序。它不会运行。请注意,这意味着将禁止您计算机上的所有用户直接运行Mail,而不仅仅是您的用户。
如果您要允许邮件再次正常运行,请在终端上运行以下命令:
sudo chmod +x /Applications/Mail.app/Contents/MacOS/Mail
您也许可以省略“ sudo”。如果收到“不允许操作”,请使用sudo。请注意,sudo会要求您输入密码以允许特权操作。
注意事项
偏执狂
如果知道ruby的人可以访问您的登录用户,则他们可以以某种方式修改ruby脚本,从而在运行脚本时造成各种破坏,因为该脚本在部分时间内作为root用户运行。如果您认为这可能发生,则应使脚本只能由root用户写入。您还必须确保不会有人用自己的脚本替换脚本-如果您可以写该文件夹,则他们可以这样做。如果您开始对这些警告感到害怕,并且不知道如何保护自己,则可能应该忘记此解决方案,并且只记得在离开计算机时锁定屏幕即可。
.emlx
存储在中的纯文本邮件文件~/Library/Mail
。
是的-有几种密码保护邮件的方法很实用。由于您担心孩子/家庭成员,最简单的方法可能就是只使用帐户上的“家长控制”来限制这些应用。在某些时候,他们可以拥有自己的帐户,并且您可以锁定整个帐户。
在锁定应用程序或数据应用程序可以访问的一般情况下,以下是我认为可行的选项。
将您的帐户设置为受保护的父母帐户,并将您要允许的应用列入白名单。您将知道单独的管理员用户/密码,以允许启动禁止的应用程序。瞧-您想要的任何应用现在都受到密码保护。
将应用程序移动到受密码保护的磁盘映像中,然后创建一个别名以存储在“应用程序”文件夹中。(首先删除原始应用程序)任何程序尝试访问该应用程序时,您都有机会输入密码,Finder会安装磁盘映像。您还可以在运行脚本以再次使应用程序运行之前,编写权限更改脚本和其他技术技巧,要求输入密码。
将应用程序数据存储在受密码保护的加密磁盘映像中。以下是一些常见的应用程序以及它们存储用户数据的文件夹。
将您的邮件应用程序存储在可移动驱动器上-制作独立应用程序包以从USB驱动器运行应用程序是一个家庭手工业。
请记住,在安装图像之前,在应用程序内使用框架的诸如Spotlight和其他应用程序之类的东西将无法很好地工作。如果您的用户密码是安全的(不想让其他人看到数据),则可以将磁盘映像密码存储在钥匙串中。
另外-除非您保护数据文件-否则,这仅仅是出于安全性考虑,有人可以将您的数据复制到其他地方,或者只是从Spotlight或其他应用(例如文本编辑)中查看数据。他们还可以从另一台计算机上带回邮件(或任何其他)应用程序的副本。一旦管理员用户祝福应用在该系统上的首次运行,则应用可以在任何地方运行,而不仅仅是“应用”文件夹。
因此,#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位,看看是否有帮助(换句话说,使该应用程序以其他用户身份运行)。
独立帐户是解决此问题的方法。
电子邮件可能是显而易见的,但是会有一些重要的文件,书签或打开的银行标签等,对于孩子随机删除/打开/乱搞邮件同样不利。
单独的帐户(只有父母作为管理员)意味着即使所有人都可以访问应用程序,也可以将每个人的文件,电子邮件,设置等分开。
如果用户X使用“邮件”应用程序,则仅当他们登录时才能访问其电子邮件和帐户设置。当用户Y打开“邮件”时,即使他们使用相同的“邮件”应用程序,他们也将拥有自己的帐户/邮件。
您可能有一个成人共享帐户,一个孩子共享帐户,或者每个人都有一个个人帐户。使用单独的帐户,您将要在离开计算机时锁定它(通过屏幕保护程序或返回登录屏幕)。但是,即使您忘记了,您的孩子也希望使用自己的帐户(带有自己的书签或保存游戏文件,高分或文档等)而不是您的帐户,这将有助于防止意外访问/损坏。甚至简单到不必从上次使用浏览器的用户注销Facebook(每个帐户都有自己的浏览器设置,该设置可以记住谁登录了Gmail,facebook,icloud等)。
您还可以阻止某些用户通过“系统偏好设置”中的“家长控制”访问特定的应用程序,网站等。
确实满足您的要求。从他们的网站:
使用Mac App Blocker,您可以在Mac上用密码保护每个应用程序。确保您的应用程序和Mac安全。设置超时值可自动退出受保护的应用程序,因此即使您使计算机处于无人看管的状态,您仍然会受到保护。
如果您想使用某个应用来实现这一目标,那么“免费”范围似乎没有太多选择。AppLocker和AppCrypt 仅允许将1个应用锁定在免费版本中,还有一些其他应用可提供15天左右的免费试用期。否则,有付费选项。我猜想免费解决方案(针对1个以上应用)的方法是使用Kelvin的script方法。
这是我设法找到的应用程序:
免费(中):
免费试用:
付费:
就个人而言,我只是尝试过,仍然使用AppLocker。我只需要一个应用程序,因此对我来说免费版本就可以了。是非常易于使用和坚如磐石。推荐的!
What's the best way to protect my email from snooping?
,答案是最好是完全防止未经授权的用户使用您的帐户-例如,要求输入密码以停用屏幕保护程序或将系统从睡眠状态唤醒后。