Изменение прав доступа к файлам с помощью Applescript, если у вас нет разрешения на чтение - PullRequest
1 голос
/ 22 января 2011

Иногда сотрудники моей компании получают файл, который по какой-то причине не имеет разрешения на чтение или запись. Примером является загрузка файла с клиентского FTP-сервера.

Я хочу создать нечто очень простое, яблочную капельку, которая изменит права доступа к файлам, сброшенным на нее:

on open filelist
 repeat with i in filelist
  do shell script "chmod -R +wr " & quoted form of POSIX path of i with administrator privileges
 end repeat
end open

Проблема в том, что, поскольку у пользователя нет разрешений на чтение, сбой сбрасывается мгновенно в строке on open filelist.

Удаление всего между блоком on open:

on open filelist
end open

по-прежнему приводит к сбою сценария. Под неудачей я имею в виду, что он выдает ошибку разрешения файла.

Заранее спасибо.

1 Ответ

1 голос
/ 22 января 2011

Проблема может заключаться в том, что вы пытаетесь работать с файлами, которые ваш пользователь не может прочитать - это приведет к тому, что капля не будет работать, потому что это зависит от способности читать! Вам нужно будет написать правильное приложение, используя средство выбора файлов. Проблема в том, что вы можете выбрать несколько файлов, но только файлы или папки. Во всяком случае, я написал нечто подобное в прошлом, поэтому не стесняйтесь использовать это:

set myUsername to (short user name of (system info))
set myPassword to ""

set fileOrFolder to button returned of (display dialog "Would you like to change permissions on files of folders?" buttons {"Cancel", "Files", "Folders"} default button "Cancel")

if fileOrFolder is "Files" then
set theSelection to choose file with multiple selections allowed without invisibles

repeat with oneFile in theSelection

do shell script "sudo chmod -R u+rwX,go+rX " & quoted form of POSIX path of oneFile password myPassword with administrator privileges
do shell script "sudo chown -R " & myUsername & ":staff " & quoted form of POSIX path of oneFile password myPassword with administrator privileges

end repeat
else if fileOrFolder is "Folders" then
set theSelection to choose folder with multiple selections allowed without invisibles

repeat with oneFile in theSelection

do shell script "sudo chmod -R u+rwX,go+rX " & quoted form of POSIX path of oneFile password myPassword with administrator privileges
do shell script "sudo chown -R " & myUsername & ":staff " & quoted form of POSIX path of oneFile password myPassword with administrator privileges

end repeat
else
display dialog "Error"
end if
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...