Macos 当以管理员权限执行shell命令时,Applescript应用程序将挂起10.9

Macos 当以管理员权限执行shell命令时,Applescript应用程序将挂起10.9,macos,shell,applescript,admin,osx-mavericks,Macos,Shell,Applescript,Admin,Osx Mavericks,我正在Applescript应用程序中执行以下行 set POSIX_path to "/Applications/iPhoto.app" do shell script "sudo rm -rfv " & quoted form of POSIX_path with administrator privileges authentification屏幕会按应有的方式弹出,但在验证应用程序后,在执行此命令时,应用程序会冻结。此问题仅在10.9中出现 当我将文件夹的权限设置为“所有人都可

我正在Applescript应用程序中执行以下行

set POSIX_path to "/Applications/iPhoto.app"
do shell script "sudo rm -rfv " & quoted form of POSIX_path with administrator privileges
authentification屏幕会按应有的方式弹出,但在验证应用程序后,在执行此命令时,应用程序会冻结。此问题仅在10.9中出现

当我将文件夹的权限设置为“所有人都可以读写”时,它就工作了

有人知道发生了什么变化吗

编辑:当我通过检查
du-shx/Applications/iMovie.app来重复执行这个脚本时,每次尝试都会删除一些文件

$ open compiled-applescript.app/
$ du -shx /Applications/iMovie.app
1.4G    /Applications/iMovie.app
-- force quit AppleScript --
$ open compiled-applescript.app/
$ du -shx /Applications/iMovie.app
1.3G    /Applications/iMovie.app
-- force quit AppleScript --
$ open compiled-applescript.app/
$ du -shx /Applications/iMovie.app
1.0G    /Applications/iMovie.app

它在OS X 10.9(13A603)上工作正常

有人知道发生了什么变化吗

嗯,是的。。看门人变了,这可能是原因

当我将文件夹的权限设置为“所有人都可以读写”时,它就工作了

您是通过Finder还是通过命令行使用
chmod 0777
执行此操作的?后者可能会删除Finder未删除的某些属性

在您的计算机上,此处选择了什么设置

如果您有限制性设置,请尝试“任何地方”,看看它是否解决了问题。如果这是原因,您可以:

  • 安装自定义命令行工具(例如MacPorts)或您自己编译的东西(因为这发生在3台计算机上,但不是所有计算机上,而且显然您不是“通用”用户)
  • 您的applescript不受信任,如果可能,您可以尝试对其进行签名,否则这可能会起作用: 如果用户想要运行被Gatekeeper阻止的应用程序,他们有几个选项。实际上,网关守卫可以通过让它运行所有应用程序来关闭超级用户可以选择删除隔离属性或使用spctl命令在安全评估策略子系统中添加新策略。-

  • 万不得已的主意。。检查您的磁盘权限,重新安装Xcode如果您使用它,可能签名已损坏
  • 改为写一个shell脚本,我不知道它是否只是删除一些文件,那么你肯定可以在shell脚本中完成它,或者发表评论让我知道你想要实现什么

  • 经过几天的努力,我终于找到了问题的根源

    这是rm命令的详细选项(-v)。省略它会使应用程序再次完美地工作。
    也许苹果不小心引入了缓冲区溢出。我将在苹果bugtracker上创建的问题ID 15309626下报告这一点。也许他们会修复它,直到第一个10.10 DP:D

    在OS X 10.9(13A603)上工作正常。如果从终端执行sudo rm-rfv/Applications/iPhoto.app
    ,会发生什么?需要多长时间
    time sudo rm-rfv/Applications/iPhoto.app
    在终端上运行正常,大约需要18秒。该问题与AppleScript中命令的执行密切相关。如果省略
    sudo
    ,会发生什么情况?我怀疑
    do shell脚本可能正在等待输入sudo的密码。我认为拥有管理员权限的
    应该足以提升权限,而不需要sudo。不幸的是,我目前还没有安装mavericks来测试它,我忽略了它。仍然挂起。我还从系统文件夹中删除了~/Library/,/private/var/db/(这是一个卸载程序)。该问题已在三台不同的计算机上重现。通过尝试从/应用程序中删除,可以很容易地重现。我还使用applescript for Uninstall及其工作正常。我正在从/Applications和/Library/Application\Support删除文件夹。请使用系统应用程序(如iPhoto.app或iMovie.app)进行尝试!1.二号。关了门卫,它仍然挂着3。完成,也不起作用。已尝试,但在由AppleScriptan执行时仍然挂起。在一台或几台计算机上,您应该始终尝试解决问题的另一件事是创建一个新的用户帐户,并查看问题是否仍然存在。
    
    set POSIX_path to "/Users/paragbafna/Desktop/untitled folder"
    do shell script "sudo rm -rfv " & quoted form of POSIX_path with administrator privileges