在非管理员Mac上更改RealBASIC权限

时间:2010-11-01 21:22:02

标签: macos permissions realbasic

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

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

允许我这样做是否存在内置限制?

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

感谢您的回答!

以下是代码:

  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

2 个答案:

答案 0 :(得分:2)

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

答案 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 as string

mbsAuth作为授权MBS