chown
私は、root権限を持つユーザーではなく通常のユーザーなので、ファイルを漏洩できないことを理解しています。今私の問題は、書き込みアクセス権を持つ多くのファイルがルートではないということです。ただし、まだスペースの問題の影響を受けます。
これでファイルを取得できますが、zip
圧縮した瞬間のファイルの所有者は私になります。圧縮した後でも、所有者が私ではなくファイルを作成した人であることを願っています。これを行う方法はありますか?
答え1
使用している場合は、tar
ファイルの所有権を維持します。ただし、tarファイルからファイルを抽出するときにrootではない場合、権限がないと所有権は復元されません。
tarは圧縮せずに保管するだけです。
追加ボーナスとして、tar
ファイルとディレクトリの権限が維持されます。
到着tar を使用し、すべての所有権と権限を維持します。:
tar cpf ~/myarchive.tar folder_to_archive
(tarは相対パスまたは絶対パスも保存します。標準ユーザーの場合、tarは抽出時に現在のフォルダに基づいてファイルを抽出しますが、rootで絶対パスを使用する場合、tarは絶対パスを使用してファイルを抽出します。 . 既存のファイルを上書きします。
(tarアーカイブを圧縮するために任意の圧縮ツールを使用することを選択できます。例:gzip ~/myarchive.tar
またはxz ~/myarchive.tar
など)
到着ファイルの抽出:
tar --same-owner xpf ~/myarchive.tar
通常のユーザーとして、現在のフォルダ内のファイルが抽出され、権限は保持されますが、ユーザーの所有権は失われ、グループに属していないとグループの所有権が失われる可能性があります。
sudo
ただし、すべての権限と所有権を正しく設定するには、このコマンドを呼び出すか、十分な権限を持つユーザー(通常はroot)で実行する必要があります。
PS:LinuxでGNU tarを使用している場合は、ACL、xattr、SELinuxなどの一部のメタデータを保存することもできます。ただし、このデータもアーカイブしたいという事実をtarに知らせるには、特別なフラグを使用する必要があります。よりGNU tar ドキュメント。