Linuxは他のコンピュータで生成されたファイルに対する権限をどのように処理しますか?

Linuxは他のコンピュータで生成されたファイルに対する権限をどのように処理しますか?

私が知る限り、Linuxでは、ファイルの所有権はファイル所有者のUIDによって異なります。

他のコンピュータのユーザーがサーバーのユーザーと同じUIDを持ち、ファイルがサーバーにコピーされた場合はどうなりますか?ファイルの所有者は誰ですか?

他のコンピュータのユーザーが次のUIDを持っている場合はどうなりますか?いいえ、同じです。サーバーのすべてのユーザーとしてログインし、ファイルをサーバーにコピーしますか?ファイルの所有者は誰ですか?

複数のユーザーとグループを作成しました。次にコピーして貼り付けます。

$ sudo adduser --gecos "" --disabled-password --no-create-home user1
$ sudo adduser --gecos "" --disabled-password --no-create-home user2
$ sudo adduser --gecos "" --disabled-password --no-create-home user3
$ sudo adduser --gecos "" --disabled-password --no-create-home user4
$ sudo addgroup userstart
$ sudo gpasswd -M user1,user2,user3,user4 userstart
$ sudo chown :userstart /home/blueray/Desktop/Permissions
$ sudo runuser -u user1 -- cp /home/blueray/Desktop/Permissions/test.html /home/blueray/Desktop/Permissions/test-copy.html
$ ls -la /home/blueray/Desktop/Permissions
total 72
drwxrwxr-x 2 blueray userstart  4096 Feb  8 11:57 .
drwxr-xr-x 3 blueray blueray     4096 Feb  8 11:55 ..
-rw-r--r-- 1 user1  user1     31017 Feb  8 11:57 test-copy.html
-rw-rw-r-- 1 blueray blueray    31017 Feb  6 05:50 test.html

ファイルをコピーしたユーザーがファイルを所有しているように見えます。いつもこんな感じですか?

ベストアンサー1

通常、権限のないユーザーは自分のUIDとは異なる所有権を持つファイルを作成できません。したがって、ファイルをコピーすると、ターゲットの新しいファイルいつもcp コマンドを実行するユーザーの UID が所有します。

これは、権限のないユーザー(ルートではない)がファイルをコピーする場合にのみ適用されます。リモートシステムからファイルをコピーするのか、ローカルシステムからファイルをコピーするのか、ファイルの元の所有者が誰であるのかは重要ではありません。

ユーザーがファイルをコピーする場合リモートマシン、ファイルはリモートシステム上のそのユーザーのUIDに属します。たとえば、fooシステムAにUID 100を持つユーザーがあり、システムBにfooUID 101を持つユーザーがあるとします。ユーザーがfooコンピューターAからコンピューターBにファイルをコピーする場合(Bコンピューターのファイルの元の所有者が誰であるか、コピー方法が何であるかは重要ではありません)、そのファイルは同じユーザーとしてBコンピューターに作成されます。ただし、On Computer B-101にはUIDがあります。繰り返しますが、これはルートとして実行されるコピーには適用されません。

おすすめ記事