![파일 시스템을 마운트할 때 UID는 어떻게 되나요?](https://linux55.com/image/32403/%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%84%20%EB%A7%88%EC%9A%B4%ED%8A%B8%ED%95%A0%20%EB%95%8C%20UID%EB%8A%94%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EB%90%98%EB%82%98%EC%9A%94%3F.png)
10번의 Google 요청 후에도 여전히 답을 찾을 수 없고 유닉스 교과서를 살펴봐도 답을 찾을 수 없는 매우 기본적인 질문이 있습니다.
루트 파일 시스템이 있고 /dev/sda1
/home 파티션이 있는 2개의 하드 드라이브가 있는 시스템을 생각해 보십시오 /dev/sdb1
. 이제 UID=1000:GID=1000인 프로세스는 /dev/sdb1
에 있는 파일 시스템을 마운트하려고 합니다 /mnt/backup
. 나는 그것이 어떻게 일어나는지에 대한 두 가지 시나리오를 상상할 수 있습니다.
새로 마운트된 파일 시스템이 어떤 UID와 GID 아래에 표시되는지 알고 싶습니다.
1.UID와 GID는 표시된 대로 유지될 수 있습니다.
2.마운트된 파일 시스템의 UID 및 GID는 설치 프로세스의 UID 및 GID=1000으로 설정될 수 있습니다. UID와 GID가 파일 시스템에 전혀 존재하지 않으면 다음과 같은 일이 발생합니다.
내 질문은 다음과 같습니다
- 상황 1과 2는 어떤 상황에서 발생합니까? 어떤 매개변수가 있나요?
mount
시스템 호출다음 중 어떤 일이 발생하는지 확인하세요. - 사례 2의 경우 파일의 실제 UID 및 GID를 확인하는 방법입니다. 내 예에서는 마운트된 파일 시스템
/mnt/backup/john
과 둘 다/mnt/backup/jane
UID=1000으로 설정되어 있지만 실제로 해당 UID는 1002와 1003입니다. 어떻게 알 수 있나요? - 사례 1에서 Jane의 UID=1003이 시스템에 없으면 어떻게 됩니까?
답변1
이 명령을 사용하면 ls -n
해당 설치에 대한 디스크/파티션의 UID를 볼 수 있습니다.
$ ls -n
total 24
drwxrwxr-x 2 500 501 4096 May 24 15:44 bin
-rw-rw-r-- 1 500 501 11650 May 24 15:44 bouncer.log
drwxrwxr-x 5 500 501 4096 May 23 14:56 testdata
drwxrwxr-x 5 500 501 4096 May 24 14:55 testresults
stat
다음 명령을 사용하여 특정 파일의 UID/GID에 대한 자세한 내용을 볼 수도 있습니다 .
$ stat bouncer.log
File: `bouncer.log'
Size: 11650 Blocks: 24 IO Block: 4096 regular file
Device: fd02h/64770d Inode: 11023682 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 500/ saml) Gid: ( 501/ saml)
Access: 2013-05-24 15:44:17.322878327 -0400
Modify: 2013-05-24 15:44:25.484211596 -0400
Change: 2013-05-24 15:44:25.484211596 -0400
UID는 절대적입니다. 그것들은 시스템에 있는 것들입니다. 이름은 시스템 및 파일 ls
보기 와 같은 다양한 도구를 통해 매핑됩니다 ./etc/passwd
/etc/group
이러한 파일 중 하나에 숫자가 표시되지 않으면 디스크의 UID/GID 번호가 표시됩니다.
디스크의 유사한 UID/GID가 실제로 동일한 사용자 및/또는 그룹인지 확인하는 것은 시스템 관리자의 책임입니다. Unix는 이를 보장하는 메커니즘을 제공하지 않습니다.
답변2
사용자 ID는 UNIX 호환 파일 시스템에 파일의 일부로 저장됩니다. 변환이 없습니다. UNIX가 아닌 파일 시스템(예: FAT)의 경우 마운트할 때 모든 파일에서 사용되는 ID를 지정할 수 있습니다. 저장된 ID가 잘못된 사용자에게 매핑되거나 사용자가 전혀 없는 경우 잘못된 소유권을 가진 것으로 나타납니다.