個人ファイルを共有サーバーにrsync転送していて、転送先では共有777 にしたいんだけど
rsync はバックアップ時にパーティションが維持されるのはいいけれど、維持されるのが困ることも多い。 かと言ってパーティション維持を外すとumaskやsetguid が必要になって不便。
たんに共有サーバーに同期しているだけなので、0777でいいんです。
同期したいけど、パーミッションは要らない。
共有サーバーに同期するだけだから、パーミッションは簡単でいい。
--chmod オプションを使う。
chmod オプションをを使うと、転送先のファイルのパーミッションを設定できて便利。
rsync --chmod=u+rwx,g+rwx,o+rwx src dest
指定する方歩はchmod コマンド分かってたらだいたい同じ。
まとめて設定するなら a 使う
rsync --chmod=a+rwx src dest
ファイルとディレクトリでパーミッションを変えたい
ディレクトリとファイルではパーミッションの意味がちょっと違うじゃん? xの意味とか、r の意味とか。
chmod オプションにはディレクトリにも対応できるらしい
rsync --chmod=Da+x src dst
すでにあるファイルにはどうする?
コピー先にファイルが有る場合は、chmodオプションをの範囲外なので、--perm を使うと便利
勿論のことだけど -p フラグにも注意
rsync -rl --chmod=a+rwx src dest だとだめでした rsync -prl --chmod=a+rwx src dest
でちゃんと 777 になりました。
rsync は奥が深い
ちなみに chmod の書式は
chmod a+x ファイル名 ## で allユーザーに x 追加です.
数字はシンタックスエラーなるので、こう書く
次の記述はSyntax Errorになります。
rsync --chmod=777 ## これはsyntax Error
こう書きます。
rsync --chmod=F644,D775
2019-01-25 追記
chmod 777 について書いた。