내가 아는 한, 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에 foo
UID 101을 가진 사용자가 있다고 가정합니다. 사용자가 foo
컴퓨터 A에서 컴퓨터 B로 파일을 복사하는 경우(B 컴퓨터에 있는 파일의 원래 소유자가 누구인지, 복사 방법이 무엇인지는 중요하지 않음) 해당 파일은 동일한 사용자로 B 컴퓨터에 생성됩니다. 그러나 On Computer B-101에는 UID가 있습니다. 다시 말하지만 이는 루트로 실행되는 복사본에는 적용되지 않습니다.