rsyncセットグループ所有者、グループ権限


10

コンピューターからリモートLinuxシステムにファイルを転送するためにrsyncを使用したいと思います。ローカルファイルのグループ所有権に関係なく、リモート側でこれらの値を設定したいと思います。

リモートのLinuxシステムを使用している場合は、ディレクトリを作成し、所有権と権限を次のように設定できます。

mkdir my_directory
chown :my_group my_directory
chmod 775 my_directory

ローカルでディレクトリを作成してからrsyncを使用する場合(my_groupがローカルにないことに注意してください)、次のようにします。

rsync -ae ssh --chmod=ug+rw,Dug+rwx my_directory remoteserver:dest

これは機能しますが、rsyncを使用してグループ所有者を設定する方法を理解できません。を実行するとchmod g+s dest、my_directoryには正しいグループ所有者がいますが、内部のすべてのファイルには正しくないグループ所有者がいます。


こんにちは@ChrisInEdmonton、最後にこれを機能させる方法を見つけましたか?私は今同じ問題に直面しています、WindowsからLinuxボックスにcygwinからrsyncファイルを実行していますが、送信される新しいファイルの正しいグループIDを設定できませんrsync -avz --delete --exclude "*.git" --chmod=ug=rwx,o=rx /cygdrive/d/projx/ john@123.123.123.123:/var/prox/。ファイルはjohn:projxではなくjohn:johnとして着陸しますここで、projxはグループの名前です)
John

1
私はrsync 3.1に--groupmap=*:group-name'..が含まれていることを発見しました 。
ジョン

回答:


8

今すぐ、私はrsync操作でこれを行う方法を探しています。後続の操作とは対照的です。一部のファイルを誰でも読み取れないようにしてグループを割り当て、そのグループ内のリモートサーバープロセスへのアクセスを制限したい。しかし、私はそれを見つけていません。

私が想像できる唯一のものは:

  1. --delay-updatesを使用して、リモートファイルをよりアトミックで瞬時の操作に割り当てます。
  2. rsync --chmodオプションのg + rwx、o + rwx

次に実行します:

ssh remoteserver chgrp -R {groupname} /my/dest/folder/* && \
chmod -R o-rwx /my/dest/folder/*

ええ、それが私たちがやろうとしていることだと思います。あなたや私がrsyncだけでこれを行う方法を見つけることができないことに驚いていますが、ねえ。
ChrisInEdmonton 2010年

6

コマンドに-pフラグがないと思います。

--chmod

このオプションは、1つ以上のコンマ区切りの「chmod」文字列を転送中のファイルの許可に適用するようにrsyncに指示します。結果の値は、送信側がファイルに提供した権限であるかのように扱われます。つまり、--permsが有効になっていない場合、このオプションは既存のファイルに影響を与えないように見えます


1
-pフラグは、暗黙のうちの一部として含まれている-a(アーカイブ)オプション。
Anthony Geoghegan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.