GNU/Linux >> Linux の 問題 >  >> Linux

Rsync コマンドの問題、所有者とグループのアクセス許可は変更されません

解決策 1:

rsync のバージョン 3.1.0 で --usermap が導入されました と --groupmap トーマスが言及しましたが、便利なオプション --chown 、これはシナリオに適しています。

--chown=USER:GROUP
    This option forces all files to be owned by USER with group GROUP.
    This  is  a  simpler  interface  than  using  --usermap  and  --groupmap directly,
    but  it  is implemented using those options internally, so you cannot mix them.
    If either the USER or GROUP is empty, no mapping for the omitted user/group will
    occur.  If GROUP is empty, the trailing colon may be omitted, but if USER is
    empty, a leading colon must  be supplied.

    If you specify "--chown=foo:bar, this is exactly the same as specifying
    "--usermap=*:foo --groupmap=*:bar", only easier.

また、-o -g オプションが必要です。それらを除外すると、それぞれの属性の更新に失敗しますが、エラーは発生しません。

rsync -og --chown=cmsseren:cmsseren [src] [dest]

これはマンページで間接的に言及されており、--chown オプション "は --usermap を使用して実装されています そして --groupmap 内部"、および:

<ブロック引用>

--usermap の場合 オプション、-o (--owner ) オプションを使用 (または暗示) する必要があり、レシーバーはスーパーユーザーとして実行する必要があります (--fake-super も参照してください)。 オプション)

--groupmap の場合 オプション、-g (--groups ) オプションを使用 (または暗示) する必要があり、受信者はそのグループを設定する権限を持っている必要があります。

解決策 2:

正常に動作しているようです。 --owner を使用 と --group 保存する (設定されていません) 所有者とグループの名前... つまり、転送後にそれらを変更したくないということです。

これらのオプションを使用しない場合、ユーザーとグループは受信側の呼び出しユーザーに変更されます。他のユーザーを指定する場合は、chown を追加する必要があります。 コマンドをスクリプトに追加します。

-o, --owner
    This option causes rsync to set the owner of the destination file to be 
    the same as  the source file, but only if the receiving rsync is being run 
    as the super-user (see also the --super and --fake-super options). Without 
    this option, the owner of new and/or transferred files are set to the invoking 
    user on the receiving side...

-g, --group
    This option causes rsync to set the group of the destination file to be the same as 
    the source file. If the receiving program is not running as the super-user (or if
    --no-super was specified), only groups that the invoking user on the receiving side
    is a member of will be preserved. Without this option, the group is set to the default
    group of the invoking user on the receiving side...

man rsync

解決策 3:

rsync の最新バージョン (少なくとも 3.1.1) では、「リモート所有権」を指定できます:

--usermap=tom:www-data

所有権を www-data (別名 PHP/Nginx) に変更します。 Mac をクライアントとして使用している場合は、brew を使用して最新バージョンにアップグレードします。サーバーにアーカイブ ソースをダウンロードしてから、それを「作成」してください!


Linux
  1. Linuxでchmod(モード変更)コマンドを使用する方法

  2. スラッシュと rsync コマンド

  3. ls を所有者とグループでソートするにはどうすればよいですか?

  1. コマンドラインからアクセス許可と所有者を変更する方法

  2. ファイルをコピーし、所有権、権限を同時に変更する方法

  3. 特定の所有者のみの所有者とグループを変更する

  1. ファイルパーミッションにおけるユーザーとグループ所有者の優先順位?

  2. 所有者とグループを変更する 12 の Linux chown コマンドの例

  3. C で所有者とグループを変更しますか?