---
# System prepended metadata

title: MSYS2：更改POSIX用戶Home目錄的名稱，解決空白字元導致的問題
tags: [MSYS2]

---

---
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即可。
