
我有一個安裝了 Windows XP SP3 的硬碟。當驅動器透過筆記型電腦內的標準 SATA 連接器連接時,一切都會按預期工作。
但是,當我從筆記型電腦中取出磁碟機並將磁碟機連接到外部 USB 轉接器時,幾乎所有檔案/資料夾都會遺失「擁有者」欄位內容。我想知道為什麼會這樣。我嘗試過兩個 USB 轉接器,每個轉接器都會出現這種情況。我可以取得所有文件的所有權,但這會覆蓋擁有者值(透過筆記型電腦中的標準 SATA 連接器存取磁碟機時出現的擁有者值)。
//編輯:如果透過 USB 轉接器使用硬碟,我將無法存取大多數文件,至少在我獲得文件(/資料夾)的所有權之前是這樣。
它是這樣的:
USB 轉接器內的硬碟:
筆記型電腦內建硬碟:
(注意所有者欄)
//編輯:第一個螢幕截圖中的某些檔案已填入擁有者欄位。那是因為我獲得了這些文件/資料夾的所有權,以便能夠存取硬碟上的文件。
//edit2:另外,如果硬碟是透過 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,它實際上儲存在owner欄位中。雖然 Windows 當然不需要 Linux 使用者 ID,但它會有一個類似的映射表,根據儲存在檔案中的 ID 來映射系統使用者。
現在,當您在正確的系統上查看實際擁有該擁有者的檔案時,Windows 可以讀取並識別該 ID。但是,如果您將磁碟機帶到另一台電腦上,則無法對應它,因為其他系統不知道檔案擁有者。
(我只是在這裡猜測,但對我來說這似乎是原因)