V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TenTo
V2EX  ›  macOS

如何阻止非 app store 程序在 mac 上运行?

  •  
  •   TenTo · 2015-09-03 08:02:23 +08:00 · 3577 次点击
    这是一个创建于 3376 天前的主题,其中的信息可能已经有所发展或是发生改变。
    设置中已经设置为只允许从 Mac App Store 下载的程序运行,但是其他非 mac store 的软件,双击还是可以运行。
    之前记得第三方软件是运行不起来的,并且会有提示来自身份不明的开发者。不知道为什么现在所有都可以运行,只是提示说“该软件是从网络下载的,是否需要运行”。
    能阻止非 app store 程序的运行吗?
    11 条回复    2015-09-04 08:39:23 +08:00
    aluo1
        1
    aluo1  
       2015-09-03 08:16:14 +08:00
    第一次运行第三方软件时会被拦截,同意之后就不会再有拦截了
    holulu
        2
    holulu  
       2015-09-03 08:16:54 +08:00
    系统偏好设置->安全性与隐私->通用->允许从以下位置下载的应用程序: Mac App Store
    squid157
        3
    squid157  
       2015-09-03 08:17:26 +08:00
    估计是 Ctrl+点击之后打开的,依然可以。我这里只允许签名过的 App ,但未签名的也可以“强制”打开,一次之后系统就不管了。
    TenTo
        4
    TenTo  
    OP
       2015-09-03 08:17:34 +08:00
    @aluo1 那有没有办法恢复拦截呢?总觉得现在的情况不心安。
    TenTo
        5
    TenTo  
    OP
       2015-09-03 08:18:42 +08:00
    @holulu 已经这样设置过了,依然无法阻止,找了很多办法,删了很多配置文件。第三方软件还是可以直接双击运行。
    yyfearth
        6
    yyfearth  
       2015-09-03 08:38:42 +08:00
    @TenTo "系统偏好设置->安全性与隐私->通用->允许从以下位置下载的应用程序: Mac App Store"
    新下载的 App 第一次运行的时候会被阻止 但是只阻止一次 如果你已经运行过 那么就不会再阻止

    不过要达到你的目的很简单啊 把这些已经运行过的 App 删掉就好了啊
    以后如果再下载 就默认不能运行

    但是 如果你右键菜单 运行的话 无论如何还是可以执行的

    另外 我发现运行下面的指令 貌似可以让一些自动运行的 App 从新弹出是否运行 不过没啥依据
    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user; killall Finder
    TenTo
        7
    TenTo  
    OP
       2015-09-03 08:48:50 +08:00
    @yyfearth 好的,我去试试看
    TenTo
        8
    TenTo  
    OP
       2015-09-03 08:55:59 +08:00
    @yyfearth “把这些已经运行过的 App 删掉就好了啊 以后如果再下载 就默认不能运行”,这个不对,我把程序删除后,重新下载,双击直接运行,并没有什么提示。
    我现在的软件不是自动运行的,所以你后面提供的方式我没有试。
    谢谢。
    yyfearth
        9
    yyfearth  
       2015-09-03 11:47:12 +08:00
    @TenTo 另外你是怎么下载的 必须是通过浏览器下载的才会有
    通过其他途径下载的 就不一定

    比如你用迅雷 curl/wget/axel 下载 或者在 windows 下面下载后复制过来 都无效

    这个功能的实现原理是 浏览器或者支持这个特性的下载器 下载文件的时候 会给这个文件加上一个标记 "xattr com.apple.quarantine"
    而且这个标记解压的时候 如果是通过系统内建的工具解压 会把这个标记传递给解压的文件
    如果这个文件是个 app 那么会在第一次执行的时候进行签名的检查

    windows 的 smartscreen 也是一模一样的技术
    wohenyingyu01
        10
    wohenyingyu01  
       2015-09-03 11:58:34 +08:00
    用 guest 账号登陆 mac ,所有具有危险性的第三方软件都要你输入密码才能运行,不具有危险性(需求权限低)的软件在你退出登录之后的所有痕迹都会被删除,和没运行过一样。
    TenTo
        11
    TenTo  
    OP
       2015-09-04 08:39:23 +08:00
    谢谢各位,暂时还没有很好的办法。第三方的 App 第一次同意之后,后面就不会再提示了,也找不到对应的配置位置。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2784 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:50 · PVG 22:50 · LAX 06:50 · JFK 09:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.