[CentOS] replacing permissions on uploaded windows files

Wed Aug 19 21:21:18 UTC 2009
Robert Nichols <rnicholsNOSPAM at comcast.net>

Dave wrote:
> Hello,
> 	I've got a CentOS box and users are putting Windows long files on
> it, files with " " and " - " in their filenames. I'm trying to adjust the
> permissions as well as user and group membership and i'd like the changes to
> be sticky. On the tld i've set permissions of 2755 and am trying to batch
> convert the files and subfolders in it. I've done this:
> 
> find tld -type f |xargs chmod 644 {} \;
> find tld -type d |xargs chmod 755 {} \;
> 
> 	Both of these are failing due to the spaces and dashes. I've tried
> enclosing those {} in quotes, no good. Has anyone done this with shell or
> perhaps perl?

You've got 'find' syntax and 'xargs' syntax hopelessly mingled.  Here:

     find tld -type f -print0 | xargs -0 chmod 644 --
     find tld -type d -print0 | xargs -0 chmod 755 --

The "-print0" and "-0" use the ASCII NUL character as the argument
delimiter, so any legal path can be passed without being mangled.
The "--" tells chmod that none of the following arguments that might
begin with '-' should be treated as options.

-- 
Bob Nichols     "NOSPAM" is really part of my email address.
                 Do NOT delete it.