--- title: MSYS2:更改POSIX用戶Home目錄的名稱,解決空白字元導致的問題 description: MSYS2的Home目錄名稱如果包含空白字元,會導致一些編譯的問題 # image: https://hackmd.io/screenshot.png tags: MSYS2 # robots: noindex, nofollow langs: zh-Hant --- # MSYS2:更改用戶名稱和Home目錄,解決空白字元導致的問題 MSYS2預設會以目前的Windows用戶名稱來建立用戶的Home目錄,這是基於Cygwin[使用Windows安全模型實現POSIX帳戶權限][POSIX accounts, permission, and security]的機制。如果用戶名稱包含空白字元,在該Home目錄下執行編譯的任務會出現錯誤。 [POSIX accounts, permission, and security]: https://cygwin.com/cygwin-ug-net/ntsec.html#id317355 ## 解決方法 先使用**mkpasswd**工具導出`/etc/passwd`文件,取得Windows帳戶與POSIX帳戶的映射資料,然後關閉MSYS2 Shell: ![](https://i.imgur.com/09yGqWB.png) 接著直接用Windows上常用的文字編輯器(如Notepad++)打開MSYS2目錄中的`/etc/passwd`文件: ![](https://i.imgur.com/Wf03jNf.png) 以Windows用戶`Shen-Teng Tu`來說,對應到的POSIX Home目錄為`/home/Shen-Teng Tu`。將對應的Home目錄路徑改為`/home/Shen-Teng_Tu`後儲存。 最後在Windows檔案總管中將MSYS2目錄的`/home/Shen-Teng Tu`目錄重新命名為`/home/Shen-Teng_Tu`,重新啟動MSYS2 Shell即可。