2016-11-22 3 views
0

実際の理由を見てみると、コマンドtar -c /filea > /filebは次のように出力されます:tar:Removing_leading /メンバー名。なぜtar -cコマンドがメンバー名から先行する `/ 'を削除するのですか

私はこれをかなり研究していますが、何らかの攻撃などから保護するなど、非常に曖昧な理由に遭遇しただけです。大多数は回避策について説明します。

回避策は必要ありません。私はそれが起こっている実際の実用的な理由について単に興味があります。どんな助けもありがとう。

+2

システムディレクトリのファイルを誤って上書きしないようにしています。 – Barmar

+0

SOはプログラミングに関する質問です。 Unixユーティリティの設計に関する質問は、unix.SEにとってより適切です。 – Barmar

+2

'/ etc/passwd'を含むtarファイルをあなたから送信した人を想像してください。 rootとして展開し、 'tar'で先頭の'/'を削除しないと、そのファイルを上書きします。 – Barmar

答えて

1

これは、重要なファイルを上書きする可能性のある間違いを避けるのに役立ちます。ファイルは、通常、tarコマンドの現在の作業ディレクトリを基準にして抽出されます。

だけ例:あなたは、/ etc/httpdのこのディレクトリをアーカイブする場合

それは/をリードし削除します。なぜなら。現在の/ etc/httpdを抽出した後に存在する場合は、アーカイブ/ etc/httpdで上書きします。

先頭の '/'を取り除いた後で、作業ディレクトリに展開されます。/var/tmpディレクトリに展開すると、/ var/tmp/etc/httpdとして保存されます。

関連する問題