我正在使用 OS X 10.6.4,并尝试设置文件夹以自动启用对目录中复制或创建的新脚本文件的执行权限。我曾使用沙盒 2将文件夹的每个权限设置为使用粘性位启用并设置继承标志,但我仍然必须使用 chmod 为每个新标志手动设置执行标志。
我已经搞定了:
chmod -R a+rwxs ~/scripts
我已经搞定了:
chmod 7777 ~/scripts
该文件夹的权限显示如下:
drwsrwsrwt+ for the folder.
但如果我添加一个新的脚本文件,它将被设置为-rw-r--r--+
(默认)
我查看了文件unmask 000
中的设置.profile
,但文件的默认值是 666,揭露的掩码是 022,所以这并不相关,因为我需要文件的默认值为 777。
我已经弄清楚如何chmod
在由文件夹操作触发的 AppleScript 中使用来自动执行此操作,但我想知道是否存在我遗漏的简单 ACL 或 chmod 设置。
那么,有没有办法自动为新文件设置执行权限?(不使用文件夹操作和AppleScript?)
答案1
好的,我想花几天时间看看是否有更合理的方法来实现这一点。因此,这是我创建的 AppleScript,用于自动将任何文件设置为可执行文件。但它并不完美,例如,如果您有一个名称奇怪的文件夹,例如“Scripts, Ruby”,它将无法工作,但对于任何想要此功能的人来说,这是一个很好的开始。
您需要将此文本复制到 AppleScript,然后将该脚本文件复制到文件夹操作脚本目录 (~/Library/Scripts/Folder Action Scripts 或 /Library/Scripts/Folder Action Scripts)。然后右键单击要添加脚本的文件夹,选择“文件夹操作设置...”,并从列表中选择此脚本。
我有一个更复杂的版本,它可以自行执行更新等操作,只允许在每个文件夹中更改某些文件类型,允许您使用任何用户名和密码来设置权限,并发送咆哮通知,但我想保持简单,这样解决方案就不会被花哨的铃声和口哨声所混淆。
无论如何,希望这能帮助其他尝试做同样事情的人。
-- Set all the files in the directory to executable
on adding folder items to currentFolder after receiving addedItems
try
-- Set execute permissions for each file that is copied to this directory
repeat with anItem in addedItems
tell application "Finder"
try
-- Test to see if it's a file or folder (we ignore folders)
set fileType to type identifier of (info for anItem)
-- It's a file so change the permissions to execute
do shell script "/bin/chmod u+x " & (the POSIX path of anItem)
on error
-- It's a folder so do nothing
end try
end tell
end repeat
on error errorStr number errorNumber
-- Let the user know there was an error
display dialog errorStr & return & return ¬
& "Error Number: " & errorNumber ¬
buttons {"OK"} default button 1 ¬
with title "Error: " giving up after 30
end try
end adding folder items to