파일 시스템을 마운트할 때 UID는 어떻게 되나요?

파일 시스템을 마운트할 때 UID는 어떻게 되나요?

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. 상황 1과 2는 어떤 상황에서 발생합니까? 어떤 매개변수가 있나요?mount 시스템 호출다음 중 어떤 일이 발생하는지 확인하세요.
  2. 사례 2의 경우 파일의 실제 UID 및 GID를 확인하는 방법입니다. 내 예에서는 마운트된 파일 시스템 /mnt/backup/john과 둘 다 /mnt/backup/janeUID=1000으로 설정되어 있지만 실제로 해당 UID는 1002와 1003입니다. 어떻게 알 수 있나요?
  3. 사례 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가 잘못된 사용자에게 매핑되거나 사용자가 전혀 없는 경우 잘못된 소유권을 가진 것으로 나타납니다.

관련 정보