Изменение разрешений RealBASIC на Mac без прав администратора - PullRequest
1 голос
/ 02 ноября 2010

Мое приложение должно записывать (и перемещать) файлы в папку от пользователя, не являющегося администратором, и у этого пользователя нет разрешения на использование этой папки.

Я пытался изменить разрешения для папки, но онопохоже, не дает эффекта.

Существуют ли встроенные ограничения, позволяющие мне делать это?

Что я делаю, это пишу в документы, а затем пытаюсь переместить файл в конечную папку, который терпит неудачу ...

Спасибо за любые ответы!

Вот код:

  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 ]

2 голосов
/ 02 ноября 2010

Вы можете использовать одну из функций в плагине Monkeybread Software, AuthorizationMBS, чтобы разрешить авторизацию, предполагая, что пользователь может повысить уровень безопасности.В моем классе, который должен попасть в папку System, у меня есть это:

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 asAuthorizationMBS

2 голосов
/ 02 ноября 2010

ОС предназначена для того, чтобы ОСТАНОВИТЬ подобные вещи, иначе это огромная дыра в безопасности

...