RassberryPiのpiユーザ名を変更する手順

:::note warn
個人メモ
raspberry pi user name 変更などで検索しても求めてるものと違ったりしたので
それらの情報をまとめつつ実施した手順を下記にまとめる
:::
## 前提条件
+ pi（パスワード：raspberry）のユーザを使用中
+ GUI環境なし、別PC（WindowsPC）からSSHでログインして使用
+ 他Apachやら、postgresqlやら、sambaやら入ってるので、他ユーザを追加してpiを削除するなんてやり方はしたくない（pi所有のファイルをアクセス不能にはしたくない）
+ piの頃と何も変わらないようにしたい

## 流れ
1. 一時ユーザの作成
   ログインユーザがpiではpiのユーザ名を変えられないので変更用のユーザを作成する
2. ユーザ名の変更（と、それにまつわる変更）
   usermodコマンドでpiユーザのユーザ名、ホームディレクトリ名等を変更する
3. 一時ユーザの削除
   手順1.で作成した一時ユーザを削除する

## 手順１．一時ユーザの作成
piユーザでログイン中（ログインしてなかったらログインする）

ユーザtmpの作成
```shell:コマンド
$ sudo useradd -M tmp
```
> -Mオプション：ホームディレクトリを作成しない(-mとは違うので注意)

ユーザtmpでsudoが使えるようにするため、sudoグループに追加する
```shell:コマンド
$ sudo gpasswd -a tmp sudo
Adding user tmp to group sudo
```
> -aオプション：グループにユーザを追加する

ユーザtmpのパスワードを変更
（useraddではパスワードが設定されずログインできないため）
```shell:コマンド
$ sudo passwd tmp
New password: 
Retype new password: 
passwd: password updated successfully
```

一旦ログアウトし、tmpユーザでログインする
ログインできれば成功

## 手順２．ユーザ名の変更（と、それにまつわる変更）
tmpユーザでログイン中（ログインしてなかったらログインする）

ユーザ名の変更（pi -> newpi）※変更後の名前newpiは自分で変更したい名前に置き換える
```shell:コマンド
$ sudo usermod -l newpi pi

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for tmp: 
```
> -lオプション：新しいログイン名を設定する
> ※tmpでのsudoは自動設定していないので、パスワードが求められる

ホームディレクトリ名も変更する（/home/pi -> /home/newpi）
```shell:コマンド
$ sudo usermod -d /home/newpi -m newpi
[sudo] password for tmp:
```
> -dオプション：newpiのホームディレクトリを/home/newpiにする
> -mオプション：-dだけでは設定を変えるだけなので、-mオプションで実際のディレクトリを作成する
> ※tmpでのsudoは自動設定していないので、パスワードが求められる

グループ名も変更する（piグループ -> newpiグループ）
※IDはそのままなので他への影響なし
```shell:コマンド
$ sudo groupmod -n newpi pi
```
> -nオプション：指定した名前に変える

newpiでのsudoをパスワードなしにする
```shell:コマンド
$ sudo visudo -f /etc/sudoers.d/010_pi-nopasswd
```
先頭のpi -> newpi に変更する
```diff_shell:010_pi-nopasswd
-pi ALL=(ALL) NOPASSWD: ALL
+newpi ALL=(ALL) NOPASSWD: ALL
```
:::note warn
デフォルトエディタはnanoになっているが、vimに変えたい場合は以下を参照
```shell:コマンド
$ sudo update-alternatives --config editor
There are 3 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path               Priority   Status
------------------------------------------------------------
* 0            /bin/nano           40        auto mode
  1            /bin/ed            -100       manual mode
  2            /bin/nano           40        manual mode
  3            /usr/bin/vim.tiny   15        manual mode

Press <enter> to keep the current choice[*], or type selection number: 
```
内容は環境により変わるが、[*]が付いているものがデフォルトのエディタ
上記の場合、vim.tinyの番号[3]を入力するとデフォルトがvimになる
:::

ファイル名も変更する
```shell:コマンド
$ sudo mv /etc/sudoers.d/010_pi-nopasswd ./010_newpi-nopasswd
```

:::note warn
ユーザ名変更の確認
newpiにてログインする

- [x] newpiにてログインできること
- [x] プロンプトの頭がnewpiになっていること
```shell:プロンプト
newpi@raspberrypi:~ $ 
```
- [x] pwdを実行し、/home/newpiになってること
- [x] sudoを実行しパスワードなしでできること
```shell:コマンド
$ sudo apt-get update

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

～以下省略～
```
パスワードを聞かれなければOK
:::

## 手順３．一時ユーザの削除
newpiでログイン（ログインしてなければログインする）

一時ユーザを削除する
```shell:コマンド
$ sudo userdel tmp
```

## おまけ．newpiのパスワードを変える
newpiでログイン（ログインしてなければログインする）

パスワードを変更
```shell:コマンド
$ passwd
Changing password for newpi.
Current password: 
New password: 
Retype new password: 
passwd: password updated successfully
```

以上