【问题标题】:Changing RealBASIC permissions on non-admin Mac在非管理员 Mac 上更改 RealBASIC 权限
【发布时间】:2010-11-01 21:22:02
【问题描述】:

我的应用需要将文件写入(和移动)非管理员用户的文件夹,而该用户无权使用该文件夹。

我尝试更改文件夹的权限,但似乎没有效果。

是否有允许我这样做的内置限制?

我所做的是写入文档,然后尝试将文件移动到最终文件夹,但失败了......

感谢您的任何回答!

代码如下:

  Dim t as TextOutputStream
  Dim tempfile as FolderItem = SpecialFolder.Documents.Child(filePath.Name)

  t = tempfile.CreateTextFile
  t.Write fileData
  t.close

  Dim p as New Permissions( 0 )

  p.OthersExecute = True
  p.OthersWrite = True
  p.OthersRead = True

  filePath.Parent.Permissions = p

  tempfile.MoveFileTo filePath.Parent

【问题讨论】:

    标签: macos permissions realbasic


    【解决方案1】:

    操作系统旨在阻止此类事情,否则它是一个巨大的安全漏洞

    【讨论】:

    • 好吧,我就是这么想的。客户为此困扰了我几个月,我需要确定。
    【解决方案2】:

    假设用户可以提升安全级别,您可以使用 Monkeybread 软件插件 AuthorizationMBS 中的功能之一来允许授权。在我必须进入系统位置的一类中,我有这个:

    Protected Function mbsAuthorize() As boolean
      dim a as AuthorizationMBS
      dim s(2) as String
    
      if mbsAuthorized then
        mbsForm = mbsAuth.ExternalForm
        Return true
      else
        a = New AuthorizationMBS
        If a.NewAuthorization(nil, a.kAuthorizationFlagPreAuthorize) Then
          a.SimpleAuthorize
    
          if a.Authorized then
            mbsAuth=a // save so the externalform doesn't get invalid
            mbsForm=a.ExternalForm // copy to string for later use.
            Return true
          end if
        else
          break
        End if
      end
    
      return false
    End Function
    

    该类具有以下属性:

    mbsForm 作为字符串

    mbsAuth 作为 AuthorizationMBS

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 2012-05-29
      • 1970-01-01
      • 2010-12-22
      • 2017-02-05
      • 2014-04-18
      • 1970-01-01
      相关资源
      最近更新 更多