I occasionally transfer files from WINDOWS to a Mac anonymously and upon doing so end up with a file owned by ‘nobody’. So I wrote this to set the owner to the person who runs this as a Folder Action. Can also be run from the AppleScript menuextra.
Warning: Has not been tested under Fast User Switching. In fact I only use it with the Mac user logged into the GUI.
(* Set owner to me http://strawhousepig.net/ This Folder Action handler is triggered whenever items are added to the attached folder. Can also be run as-is from the AppleScript menuextra. This script will run a shell command (chown) to change the owner to the user who attached the action to the folder. This can be helpful when adding files over SMB to a drop share. WARNING: This has not been tested for multiple user activations on a common shared folder! Because we don't own the files we need to use "administrator privileges" to complete this task. If you do not have an admin password do not bother with this. Setting mpassword to "prompt" will cause this script to prompt you for your admin password when files are added. The dialog may seem ambiguous when used as a Folder Action. If you decide to store your admin password in this script DO NOT share this script without removing your password! The file is safe (from non-administrators) if stored in ~/Library/Scripts/Folder Action Scripts *) -- Set this and it is ready to go. See above for instructions! property mpassword : "prompt" property defgroup : ":wheel" -- Anything other than "" (no group alteration) MUST be prefixed with a colon (:) property defpriv : "755" -- See the 'chmod' man pages for more info. on adding folder items to this_folder after receiving added_items delay 60 --If we continue while the file is open we die. Maybe 'lsof' could be useful here... justDOit(added_items) end adding folder items to on run tell application "Finder" to set _here to (choose folder) as list justDOit(_here) end run on justDOit(_these) try set whoiam to (do shell script "whoami") if mpassword is "prompt" then set mpassword to text returned of (display dialog "You must enter the administrator password for user '" & whoiam & "' to set the owner of these files." default answer "" with title "Set owner to me.scpt" with hidden answer) end if repeat with i in _these do shell script "_here=" & quoted form of POSIX path of i & ";chown -R " & whoiam & defgroup & " \"$_here\";chmod -R " & defpriv & " \"$_here\"" password mpassword with administrator privileges end repeat on error theErr do shell script "logger 'Folder Actions was unable to set ownership. Error: " & theErr & "'" end try end justDOit (* Modified from: add - new item alert Copyright © 2002–2007 Apple Inc. You may incorporate this Apple sample code into your program(s) without restriction. This Apple sample code has been provided "AS IS" and the responsibility for its operation is yours. You are not permitted to redistribute this Apple sample code as "Apple sample code" after having made changes. If you're going to redistribute the code, we require that you make it clear that the code was descended from Apple sample code, but that you've made changes. *)
UPDATE 2016-08-25: Changed to use a ‘hidden answer’ dialog to retrieve a password when set to “prompt”.
UPDATE 2016-08-29: Added ‘chmod’ to the ‘do shell script’ command.