---
# System prepended metadata

title: Rename username and hostname in Ubuntu
tags: [Ubuntu]

---

###### tags: `Ubuntu`

# Rename username and hostname in Ubuntu
通過更改系統選項裡的更改用戶名，根本改不掉terminal上面的用戶名和主機名
怎麼辦呢？只有更改系統裡，相關的配置文件了。
但既然這些文件是系統級的，那麼燒出差錯就可能導致無法登錄等問題
因此，務必照著以下步驟來，應該就不會出差錯。

## 更改主機名
1. 修改hostname文件和hosts文件

```
sudo vim /etc/hostname
```
將裡面的名字改成你想要的主機名就可以了
然後保存退出

```
sudo vim /etc/hosts
```
同上
將原本的主機名改成想要的主機名

最後記得reboot, 就發現你的主機名更改成功了

## 更改username（因為涉及的依賴比較多，所以容易出問題，注意）

這裡修改sudoer文件、shadow文件、修改user、修改passwd文件

1. 修改sudoer文件
```
sudo vim /etc/sudoers
```
複製root那一行的內容，然後將root改為舊用戶名以及新用戶名

```
Example:
root    ALL=(ALL:ALL) ALL

aaa    ALL=(ALL:ALL) ALL（舊用户名）

ubuntu  ALL=(ALL:ALL) ALL（新用户名）
```
最後保存時，如果正常保存的話，因為read-only所以無法保存
只要使用wq!保存即可

2. 修改shadow文件

```
sudo vim /etc/shadow
```
同樣，將舊用戶名改為新用戶名即可


3. 修改用戶目錄
```
sudo mv 舊用戶名 新用戶名
```
更改了之後會影響vim的一些配置，
不要慌，這是正常的，繼續更改後續配置文件

4. 修改passwd文件
```
sudo vim /etc/passwd
```
同樣，舊用戶名改為新用戶名
這裡應該要改三處，最後再檢查三處是否相同且均為新用戶名

5. 修改group文件
```
sudo vim /etc/group
```
同樣，將舊用戶名改為新用戶名即可

6. 刪除舊用戶名權限，重啟
最後在/etc/sudoer 文件中刪除賦予舊用戶名權限那一行的內容
保存後退出reboot即可


[Reference](https://blog.csdn.net/weixin_39510813/article/details/76136820)
