
Windows XP SP3이 설치된 하드 드라이브가 있습니다. 노트북 내부의 표준 SATA 커넥터를 통해 드라이브를 연결하면 모든 것이 예상대로 작동합니다.
그러나 노트북에서 드라이브를 제거하고 드라이브를 외부 USB 어댑터에 연결하면 거의 모든 파일/폴더의 '소유자' 필드 내용이 손실됩니다. 왜 그럴 수 있는지 궁금했습니다. 두 개의 USB 어댑터를 사용해 보았는데 각각에서 이런 현상이 발생합니다. 모든 파일의 소유권을 가져올 수 있지만 이렇게 하면 소유자 값(노트북의 표준 SATA 커넥터를 통해 드라이브에 액세스할 때 표시되는 소유자 값)을 덮어쓰게 됩니다.
//편집: USB 어댑터를 통해 하드 드라이브를 사용하는 경우 적어도 파일(/folders)의 소유권을 얻을 때까지는 대부분의 파일에 액세스할 수 없습니다.
다음과 같이 보입니다.
USB 어댑터 내부 HDD:
노트북 내부 HDD:
(소유자 열 참고)
//편집: 첫 번째 스크린샷의 일부 파일에는 소유자 필드가 채워져 있습니다. 하드 드라이브의 파일에 액세스할 수 있도록 해당 파일/폴더의 소유권을 가져갔기 때문입니다.
//편집2: 또한 하드 드라이브가 USB 어댑터를 통해 연결되어 있고 일부 파일의 소유권을 'ddd' 사용자가 가져간 경우 다른 사용자('eee' 사용자라고 가정)로 로그인하면 소유자 필드는 _여전히_ 비어 있습니다:
ddd 사용자:
eee 사용자:
eee 사용자는 'ddd' 폴더에 접근할 수 없습니다.
두 사용자 모두 관리자 권한을 갖습니다.
답변1
NTFS 드라이브에서 파일을 생성하거나 편집하면 해당 드라이브에 사용자나 그룹이 할당됩니다. 마이크로소프트설명하다이 메커니즘은 꽤 좋습니다. 기본적으로 모든 파일에는 도메인 그룹과 사용자가 할당됩니다. (도메인\사용자)
물론 그들은 그것이 어떻게 작동하는지에 대해 깊이 있게 이야기하지는 않지만 Linux용 ntfs-3g를 다시 빌드하는 사람들은 그것이 어떻게 작동하는지 이해하기 위해 파일 시스템을 파헤쳐야 했습니다. 이 있습니다기사이는 보다 쉬운 작업 흐름을 위해 Linux 사용자를 Windows 사용자로 매핑하는 방법을 설명합니다. 여기서는 Linux에 대해 이야기하고 있지 않지만, 볼 수 있는 정보는 매핑이 서로 다른 숫자의 집합이라는 것입니다. 예:
500::S-1-5-21-1833069642-4243175381-1340018762-1008
콜론 앞의 부분은 Linux 사용자 ID이고 그 뒤의 부분은 Windows 사용자 ID이며 실제로 소유자 필드에 저장됩니다. 물론 Windows에는 Linux 사용자 ID가 필요하지 않지만 유사한 매핑 테이블이 있어 시스템 사용자를 파일에 저장된 ID에 매핑합니다.
실제로 이 소유자가 있는 올바른 시스템에서 파일을 보면 Windows는 이 ID를 읽고 식별할 수 있습니다. 그러나 드라이브를 다른 컴퓨터로 가져가면 매핑할 수 없습니다. 단순히 파일 소유자가 다른 시스템에 알려지지 않기 때문입니다.
(여기서는 추측일 뿐이지만, 제가 보기엔 이것이 이유인 것 같습니다)