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

SeedboxからのRsync後にファイルに新しいアクセス許可を強制しますか?

トレントに使用するシードボックスアカウントを持っています。 rsyncを使用するcronジョブを設定しました シードボックスから14.04.1ubuntuサーバーにすべてのファイルをダウンロードします。以前はWindowsを使用してコンテンツをフォルダーに整理してから、サーバー上のより永続的な場所に移動したため、ダウンロードフォルダーはsamba共有です。 14.04にアップグレードする前は、12.04を使用しましたが、すべて問題なく動作しました。

問題は、シードボックスから取得したファイルが「544」というユーザーによって所有されており(これはシードボックスによって生成されたユーザー名であり、8進数ではありません)、サーバー上のユーザーが削除できないことです。ダウンロードフォルダの権限を変更した後、削除できます。また、共有時にsambaフォルダーでの読み取り/書き込みのアクセス許可をすべてのユーザーに付与しました。

だから私の質問はこれです:rsyncを作るために実行されるいくつかのエレガントなコマンドを通して可能ですか? ダウンロード時にファイルのユーザー/権限を変更しますか?または、フォルダにコピー/移動したときにすべての新しいファイルが自動的にユーザーを変更するようにフォルダを機能させることは可能ですか? chmodを置くことができると思います sudo cronでコマンドを実行して、ファイルの所有者を変更しますが、ダウンロードするデータの量がかなり多くなることがあるため、rsync-jobに関連していつトリガーするかを知るのは困難です。すべてのファイルがダウンロードされていることを確認します。

承認された回答:

rsync のみ -oを使用して要求した場合、所有者を保持します —それ以外の場合、ファイルはrsyncを実行しているユーザーが所有します 他のファイルが作成されるときと同じように、コマンド。 -a -oを含む ただし、一般的なrsyncがたくさんあります コマンドラインにはそれが含まれています。 man rsync これに関する一節が明示的に含まれています:

For example: if you want to use -a (--archive) but don’t want -o
(--owner),  instead  of  converting  -a  into -rlptgD, you could
specify -a --no-o (or -a --no-owner).

したがって、rsync -a source destの代わりに rsync -a --no-o source destを使用できます コマンドを実行しているユーザーがファイルを所有できるようにします。

一方、ファイルの所有者を変更できるのは通常、rootである場合のみであるため、これはあまり発生しません。何らかの理由でこのジョブをrootとして実行する必要があり、ファイルをrootではなく通常のユーザーが所有するようにしたい場合は、--chownを使用できます。 オプション:

rsync -a --chown=youruser:yourgroup ...

--usermapもあります 一部のユーザーを維持したい場合は、より複雑なマッピングのオプション。 from:toのコンマ区切りのリストが必要です ペア。

関連:&&と|の違いbashスクリプトで?

最後のオプションとして、明らかにrsyncを実行しているため cronジョブから、所有者/権限変更操作を&& chown ...を使用してcronジョブに追加するだけです。 。


Linux
  1. Linuxでグループ権限を継承するための新しいファイルを取得しますか?

  2. Rsyncからすべてのドットアンダースコアファイルを除外しますか?

  3. フォルダに触れずにファイルから実行権限を再帰的に削除するにはどうすればよいですか?

  1. Rsyncはディレクトリのアクセス許可を変更していますか?

  2. コマンドラインからLinuxサーバーを移行するときにrsyncを高速化する

  3. rsyncを使用してファイルを同期する

  1. Linuxはロボコピーに相当しますか?

  2. rsync ディレクトリ内の N 個の最新ファイル

  3. Windows PC からリモート Linux サーバーに rsync を使用する方法は?