あるLinuxから別のLinuxにファイルとディレクトリを移行するときに権限を維持する方法

あるLinuxから別のLinuxにファイルとディレクトリを移行するときに権限を維持する方法

あるコンピュータから別のコンピュータにファイルとディレクトリを移行するには、tarを使用する必要があります。 tarなどを使いたいです。しかし、rootアクセス権はありません。私が知っている限り、「ファイルの権限と所有権を抽出するには、ファイルの所有権を変更するには通常スーパーユーザー権限が必要なので、抽出時にrootとしてtarを実行する必要があります」https://superuser.com/questions/838392/how-to-tar-a-directory-preserving-not-only-permissions-but-ownership-too

実際の状況:

mvbatホームディレクトリにアカウントがあります/home/mvbat。このディレクトリ内には、権限の異なるサブディレクトリとファイルがあり、一部は実行可能であり、一部はそうではありません。

以前のRedHat6から新しいRedHat8への移行に直面していましたが、管理者が課す制限があります。

開発チームとして、私たちはrsync移行を使用することはできません。

答え1

試してみましたか?

ファイルの所有権を変更するには(もちろん)root権限が必要ですが、rootがなくても権限を保持できます。

「受信」tarは、ファイルを実行するのと同じuidでない限り、ファイルの所有権を変更することはできませんが、権限を忠実に保存します(umask設定が適用される可能性があります。これを防ぐには、次のオプションを使用してください-p)、または解凍する前にumask )に変更してください0

答え2

ある Linux コンピュータから別の Linux コンピュータにファイルとディレクトリを移行するときに権限を維持するには、-a (アーカイブ) オプションを指定して rsync コマンドを使用できます。このオプションは、権限、所有権、タイムスタンプ、シンボリックリンクなど、ファイルのさまざまな属性を保持します。

使用できるコマンドの例は次のとおりです。

基本コピー

rsync -a /path/to/source/ user@remote:/path/to/destination/

このコマンドでは、/path/to/source/ を移行するディレクトリへのパスに置き換え、user@remote:/path/to/destination/ をターゲットサーバーのホスト名または IP アドレス(ユーザー名)に置き換えます。リモートサーバーへの接続に使用され、ターゲットディレクトリへのパス。

コマンドを実行する前に、リモートサーバーへのSSHアクセス権が必要であり、ターゲットディレクトリがリモートサーバーに存在している必要があります。

答え3

両方のコンピュータに物理的にアクセスできる場合は、拡張タイプFSを持つ外部ドライブを使用してください。

cp -aすべての関連情報は維持されます。

関連情報