On Tue, Dec 19, 2006 at 10:19:42PM -0600, Greg Wallace wrote:
On Tuesday, December 19, 2006 @ 5:15 AM, Joachim Schrod wrote:
Greg Wallace wrote:
I would like to go through all files and subdirectories of a directory and set the group permissions equal to the owner permissions. Is there a command that will do this? This directory has thousands of files and hundreds of directories under it, so doing this manually isn't feasible.
find directory | while read f do setfacl -m `getfacl "$f" | grep user | sed s/user/group/` "$f" done
Joachim
Joachim: Well, I tried this script but it didn't work. I put the above code into a file, hard coded /root/test for directory to point to a directory called test under root that had 4 files under it, and tried executing the script to see if it copied over the permissions. I got the following error when I tried to run it --
': not a valid identifier line 1: read : `f
To code above is bourne shell code and the new lines are intended. You may replace the new lines with `;' ... find directory | while read f ; do setfacl -m $(getfacl "$f" | grep user | sed s/user/group/) "$f"; done Or within a shell script #!/bin/sh find ${1+"$@"} | while read f do m=$(getfacl --omit-header "$f" 2> /dev/null | sed -n 's/user/group/p') test -n "$m" || continue setfacl -m $m "$f" done Werner -- "Having a smoking section in a restaurant is like having a peeing section in a swimming pool." -- Edward Burr -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org