I have run the command
sudo rsync --chmod=a+rwx testfile testfile2
This creates a file testfile2
but the permissions on it are 755 (-rwxr-xr-x)
Can someone explain how to make it so the permissions are 777 (-rwxrwxrwx)
?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.
Sign up to join this communityUse
sudo rsync --perms --chmod=777 testfile testfile2
or
sudo rsync --perms --chmod=a+rwx testfile testfile2
Invalid argument passed to --chmod (777)
with the first option. Seems to be explained here?
Using --chmod=777 with rsync may fail:
sudo rsync --perms --chmod=777 ./testfile ./testfile2
rsync: Invalid argument passed to --chmod (777)
rsync error: syntax or usage error (code 1) at main.c(1453) [client=3.0.9]
However, these are successful:
sudo rsync --perms --chmod=u+rwx ./testfile ./testfile2
sudo rsync --perms --chmod=g+rwx ./testfile ./testfile2
sudo rsync --perms --chmod=o+rwx ./testfile ./testfile2
i.e. add (+) permissions for user (u), group (g) or other (o) respectively.
Also (a)=all is successful:
sudo rsync --perms --chmod=a+rwx ./testfile ./testfile2
or alternatively:
sudo rsync --perms --chmod=ugo+rwx ./testfile ./testfile2
That --perms can replaced by -p with same results.
Revoking (-) permissions works the same way and even comma separated combinations of adding and revoking:
sudo rsync --perms --chmod=u-rwx,o+rwx ./testfile ./testfile2
chmod 777
: nonononono! Never ever run chmod 777
. It is practically never required! Not even for "testing purposes". If the file is readable, then it's readable. If it's writable by the user
or group
that need to write to it, then it's writable. There is absolutely zero need to give everyone write permissions, and forgetting to chmod
it back to something sane is exactly how multinationals get hacked. Just don't do it. Ever. I wrote an introduction of Unix permissions. Please read it!
Mar 13, 2016 at 6:10
o+rwx
is the same effect/problems (gives "other" read/write access, which is everyone!)
Mar 13, 2016 at 6:10
I would be lying if I said “i found this in the documentation”, only in an SO question, but still it works!
--perms --chmod=D770,F660
gets you 'executable' on directories (alias: directories are browsable) while all files are non-executable. (=just what the doctor ordered. Same thing can be achieved with the regular chmod command by using an uppercase X -x+rwX
, but not with rsync...) so this is just nice to know.