Gibt es eine Möglichkeit, die Ausführungsberechtigungen für neue Dateien automatisch festzulegen?

2

Ich verwende OS X 10.6.4 und versuche, einen Ordner so einzurichten, dass Ausführungsberechtigungen für neue Skriptdateien, die in ein Verzeichnis kopiert oder erstellt wurden, automatisch aktiviert werden. Ich habe Sandbox 2 verwendet , um jede Berechtigung für den Ordner mit Sticky Bits und gesetztem Erbe-Flag zu aktivieren, aber ich muss das Ausführungs-Flag immer noch manuell mit chmod für jedes neue Flag setzen.

Ich habe getan:

chmod -R a+rwxs ~/scripts

Ich habe getan:

chmod 7777 ~/scripts

Die Berechtigungen für den Ordner lauten wie folgt:

drwsrwsrwt+ for the folder.

Wenn ich jedoch eine neue Skriptdatei hinzufüge, wird diese auf -rw-r--r--+(die Standardeinstellung) gesetzt.

Ich habe mir die Einstellung unmask 000in der .profileDatei angesehen, aber der Standardwert für Dateien ist 666 mit einer Unmask von 022, das ist also nicht relevant, da ich einen Standardwert von 777 für Dateien benötigen würde.

Ich habe herausgefunden, wie man chmodin einem AppleScript verwendet, das durch eine Ordneraktion ausgelöst wird, um dies zu automatisieren, aber ich frage mich, ob es eine einfache ACL- oder chmod-Einstellung gibt, die mir fehlt.

Gibt es eine Möglichkeit, die Ausführungsberechtigung für neue Dateien automatisch festzulegen? (Ohne Ordneraktion und AppleScript?)

Ich helfe X u
quelle

Antworten:

2

OK, ich dachte, ich würde ein paar Tage warten, um zu sehen, ob es einen vernünftigeren Weg gibt, dies zu tun. Also, hier ist das AppleScript, das ich erstellt habe, um jede Datei automatisch auf ausführbar zu setzen. Es ist jedoch nicht perfekt, zum Beispiel, wenn Sie einen Ordner mit einem seltsamen Namen haben, zB "Scripts, Ruby", funktioniert es nicht, aber es ist ein guter Anfang für alle, die diese Funktionalität wünschen.

Sie müssen diesen Text in ein AppleScript kopieren und dann diese Skriptdatei in Ihr Verzeichnis für Ordneraktionsskripten kopieren (~ / Library / Scripts / Folder Action Scripts oder / Library / Scripts / Folder Action Scripts). Klicken Sie dann mit der rechten Maustaste auf den Ordner, zu dem Sie das Skript hinzufügen möchten, wählen Sie "Ordneraktionen einrichten ..." und wählen Sie dieses Skript aus der Liste aus.

Ich habe eine viel kompliziertere Version, die Aktualisierungen selbst ausführt, nur das Ändern bestimmter Dateitypen auf Ordnerbasis zulässt, das Festlegen von Berechtigungen mithilfe eines beliebigen Benutzernamens und Kennworts ermöglicht und Knurrbenachrichtigungen sendet, was ich aber wollte Halten Sie es einfach, damit die Lösung nicht durch die ausgefallenen Schnickschnack verschleiert wird.

Hoffe auf jeden Fall, dass dies jemand anderem hilft, der versucht, das Gleiche zu tun.

-- 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
Ich helfe X u
quelle