Изменение разрешений RealBASIC на Mac без прав администратора
Мое приложение должно записывать (и перемещать) файлы в папку от пользователя, не являющегося администратором, и у этого пользователя нет разрешения на использование этой папки.
Я попытался изменить разрешения для папки, но, похоже, это не сработало.
Есть ли встроенные ограничения, позволяющие мне это делать?
Что я делаю, это пишу в Документы, а затем пытаюсь переместить файл в конечную папку, что не удается...
Спасибо за любые ответы!
Вот код:
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 ответа
ОС предназначена для остановки такого рода вещей, так как в противном случае это огромная дыра в безопасности
Вы можете использовать одну из функций в плагине 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 как строка
mbsAuth as AuthorizationMBS