1つのLinuxディストリビューションにroot権限を持つfoo.txt
という名前のテキストファイルがあります。別のコンピューター上の別のLinuxディストリビューションにコピーしました。
foo.txt
のファイル権限は引き続き維持されますか?
はいの場合、Unix/Linux linuxはどのようにしてファイルの権限を認識し、複製しますか?
ファイルに余分なバイト(権限を示す)を追加しますか?
エリックの答え(コメントの担当者がいない)を追加するために、アクセス許可はファイルに保存されませんが、所有者とタイムスタンプとともにメタデータとしてファイルの inode (ファイルシステムのディスク上のファイルの物理的な場所へのポインター)に保存されます。これは、ファイルをNTFSやFATなどの非POSIXファイルシステムにコピーすると、アクセス許可と所有者のデータが削除されることを意味します。
ファイルの所有者とグループは、それぞれユーザーID(UID)とグループID(GID)の数字のペアです。ルートUIDは標準で0であるため、ファイルは(ほぼ)すべてのUNIX準拠システムでルートが所有しているものとして表示されます。一方、非ルート所有者は意味のある方法で保存されません。
つまり、extX usbstickなどを介してtarballまたはコピーした場合、ルートの所有権は保持されます。非ルート所有権は信頼できません。
それはあなたがそれをどのようにコピーするかに依存するでしょう。 tar
ボールに入れてコピーし、風袋引きを解除すると、tar
は権限を保持します。 rsync
を使用すると、フラグによっては、権限も保持されます。これらのアプリケーションは、アクセス許可に責任があります。 scp
を実行した場合、アクセス許可は保持されません。
コピーを実行するコマンドは、新しく作成されたファイルのアクセス許可を管理します。
所有者/グループの場合、誰がどのようにコピーするかによって異なります。
root
ユーザーもcp
を使用(--preserve
オプションを除く)root
とtar
のデフォルトになります