The easiest way to do this is to use the Terminal. To do so, you need to have sudo access, which I'm assuming you're familiar with, conceptually, at least, since you mentioned Linux.
TL;DR:
find . \! -perm 666 -type f -exec sudo chmod 666 {} \;
is a one-liner that will do the trick, assuming you run it from the exact folder that you want, e.g., $HOME/Desktop/files_are_in_this_folder
. If it's just one file, however, you can just run sudo chmod 666 /path/to/the/file
.
Allow me to explain, to the best of my ability, what's going on.
find(1)
is an extremely powerful finding utility, much moreso than whereis
. The reason it's so powerful is it takes so many different options; as a simpler example, try find $HOME -size +100M
; this will find all the files, recursively, over 100 MB and show you a list of them. Mine output the following:
/Users/jayands/.rvm/gems/ruby-1.9.3-p385/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/libv8_base.a
/Users/jayands/.rvm/gems/ruby-1.9.3-p385/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/obj.host/tools/gyp/libv8_base.a
/Users/jayands/.rvm/gems/[email protected]/gems/libv8-3.11.8.3-x86_64-darwin-10/vendor/v8/out/x64.release/libv8_base.a
/Users/jayands/.rvm/gems/[email protected]/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/libv8_base.a
/Users/jayands/.rvm/gems/[email protected]/gems/libv8-3.11.8.13-x86_64-darwin-10/vendor/v8/out/x64.release/obj.host/tools/gyp/libv8_base.a
/Users/jayands/Documents/2013-02-10.wav
/Users/jayands/Documents/2013-02-17.wav
/Users/jayands/Documents/2013-02-24.wav
/Users/jayands/Documents/2013-03-03.wav
/Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data0.sdb
/Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data1.sdb
/Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data2.sdb
/Users/jayands/Library/Application Support/Steam/SteamApps/common/regnum/data4.sdb
/Users/jayands/Library/Caches/com.apple.Safari/Cache.db
/Users/jayands/Music/iTunes/iTunes Media/Podcasts/Bronyville/93 Bronyville Episode 093 – Friendship Gives You Wings!.mp3
As you see, it'll find everything, even stuff you don't want to modify. If they have a specific naming convention, say, *.wav
, you can specify the find command to search by name, as well. find . -name '*.wav'
I said all that to familiarise you with the easier part of find
; the following is the part that tends to trip people up. find
has directives you can have it do to what it finds. -print
is so common it's the default one and generally doesn't have to be specified. -print0
, however, is a bit more interesting: it does mostly the same thing as -print
, but the 0 is a NUL character replacing the linefeeds; it makes piping to xargs
easier. The one we're interested in, however, is the -exec
directive, which allows you to run most simple shell commands on each file, which brings us to {}
and \;
. The \;
is to escape a semicolon for termination of the exec command and the curly braces come from awk
, if I recall correctly. They get replaced by what is found.
chmod
is still around from the Unix days; in fact, a lot of the commands you can run in Linux in xterm
have some analog in the Mac terminal. chmod 666
will give you read-write access for everybody; however, if you can't remember that, try chmod a=rw
. Both of these commands mean: "take the file I'm about to tell you of and set the permissions to Read-Write access for everybody."
Also, since you're collaborating, you might want to look into running a private git
, Perforce (p4
) or Mercurial (hg
) server, as these management systems also manage the permissions of the files.
More Info
find
man find
from the Terminal
- This tutorial
chmod
man chmod
sudo
man sudo
git
: From the git homepage
If you need any more help, just ask.
Oh, before I forget: sudo
asks for your admin password for that machine.