in reply to Puzzled by File::Find

In ls man page states that the trailing '+' in the ls -ld output means there are extended permissions (Access Control Lists) on the /Users/dbae directory.

Perhaps these ACLs are restricting the user running the script from changing into the tmp dir. I've never used ACLs on any 'nix before, so it may be worth looking into. It looks like you can use the -e option to ls to see access control list entries.

Out of curiosity, can you actually cd into the tmp directory with the user your script is running as? This wasn't shown in your above output.

Update: D'oh! Somehow I completely missed the fact that the OP was recursing one level further as Eliya pointed out, which probably makes this post irrelevant. That's what I get for coming into work too early before having enough coffee.