為什麼 Mac 上的檔案在複製到硬碟並從 Windows 中查看時通常會被加密?

為什麼 Mac 上的檔案在複製到硬碟並從 Windows 中查看時通常會被加密?

為什麼 Mac 上的檔案在放在外部磁碟機上並且該磁碟機插入 Windows 系統時通常會被加密?

我將解釋我的意思,因為它們乍一看並沒有加密,因為你可以打開它們。

但仔細檢查後,它們可以在 Windows 資源管理器中顯示為綠色

在此輸入影像描述

然後 windows cipher 命令顯示為已加密,並且它們的屬性屬性顯示為已加密。

在此輸入影像描述

我不是唯一遇到這種情況的人,例如如何在 Windows 7 中列出加密檔案? 一張海報寫道「...我正在清理外部硬碟,發現了 150 個加密檔案。所以我想知道它們是什麼以及在哪裡,因為我的電腦上沒有使用加密。結果發現它來自一個我可以輕鬆獲得的下載很少,或者在我的電腦上看到“_MACOSX”資料夾,它們始終是加密的。

我遇到的一個例子是我在 Rails 中編寫的一個程序,只是我使用命令創建的一個名為“scaffoldingtest1”的目錄rails new scaffoldingtest1 ,並且我已將父目錄複製到外部硬碟。

我還看到一些來自 Mac 用戶的與 adobe 相關的 PDF。

它們被加密,就像在 Windows 電腦上加密一樣,因為它們只能從 Windows 使用者名稱@該電腦上查看。如windows中加密的屬性所示。該電腦上的使用者可以解密它們。但它們不知怎的就這樣被加密了。如果該外部磁碟機被帶到另一台 Windows 電腦上,則無法讀取它們。

我想知道 OSX 上的什麼設定導致了這個問題?

注意-由於一些版主傾向於刪除長評論線程並丟失重要信息,因此這裡是截至英國時間 2020 年 11 月 21 日 20:13 備份的當前評論線程的鏈接https://pastebin.com/raw/f2Aytv6W

答案1

原因是內建 macOS Archive 程式和各個 Windows 版本中的內建解壓縮程式存在已知的相容性問題。

當您使用 Finder 內建的「壓縮」工具時,您將獲得一個 ZIP 檔案。 ZIP 檔案包含每個檔案的「外部檔案屬性」等內容。這些屬性依賴主機系統(即,不保證在各種作業系統上以相同的方式理解這些屬性)。

不幸的是,macOS 工具標記檔案的屬性之一被 Windows 內建解壓縮工具解釋為將檔案標記為「加密」(這是 NTFS 檔案內建的單檔案加密的特殊形式)系統)。這表示解壓縮後,檔案具有加密屬性,並且它們的名稱在 Windows 資源管理器中顯示為綠色。

但是,這沒有明顯的缺點,因為您可以輕鬆開啟檔案的「屬性」並刪除「加密」屬性上的複選標記。文件內容並未真正加密,因此可以照常開啟文件。

您可以透過在 Mac 上使用不同的壓縮工具或在 Windows 上使用不同的解壓縮工具來避免此問題。

技術細節如下:

這個問題是由 Windows 解壓縮程式錯誤地解析每個檔案/資料夾的 ZIP 標頭中的「外部檔案屬性」所造成的。標頭的此元素與主機相關,因此解壓縮程式應檢查中央目錄檔案標頭的元素(稱為「版本由」建立),以檢查哪個作業系統建立了該檔案。 macOS 壓縮工具在這裡正確儲存「Unix」的屬性值 3。

不幸的是,Windows 工具忽略此值,並且始終將檔案屬性解釋為好像它們是在 Windows 上建立的一樣。 「加密」問題源自於這樣一個事實:在 Windows 上建立的 ZIP 檔案根據 Microsoft 定義的檔案屬性常數 (FILE_ATTRIBUTE_<...>) 儲存檔案屬性。特別是由值 0x4000 定義的 FILE_ATTRIBUTE_ENCRYPTED 表示加密的檔案或目錄。然而,Unix 系統使用 POSIX 常數,其中 S_IFDIR 是表示「這是一個資料夾」的屬性 - 通常定義為值 0040000,相當於 0x4000。

相關內容