みかんのゆるふわ技術ブログ

Raspberry PiやIoT関係のことを書き残していきます

Raspberry Pi OSのデフォルトユーザー(pi)を削除して独自のユーザー名を使う

Raspberry Pi OSのデフォルトユーザーpiです。 しかし、おれ様の名前はpiじゃないぞ!😡と思う方もいるでしょうし、自分の名前にしたいですよね。

さらに言えば、パスワードを適切に設定していれば問題ありませんが、piユーザ名とありがちなパスワード(raspberrypasswordなど)の組み合わせで辞書攻撃されたり、ブルートフォース攻撃で突破されたりするかもしれません1

そこで、デフォルトユーザーのpiを使わずに、独自のユーザー名を使ってみましょう。

なお、この記事はRaspberry Pi OS Lite版(GUIなし)での方法です。Desktop版(GUIあり)だともう少しややこしくなります。

ユーザーを作ろう

まずは、デフォルトユーザーpiでSSH接続してログインします。

ユーザーを作成する前に

実はpiユーザーは様々なグループに所属していて、いろんな権限を持っています。 例えばsudoグループに所属しているので、sudoコマンドが使えます。 新しく作ったユーザーはこれらのグループに所属していないので、sudoコマンドが使えないなどの不都合があります。

そもそも、piユーザーはどんなグループに所属しているのでしょうか。

$ id
uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm),20(dialout),24(cdrom),27(sudo),29(audio),44(video),46(plugdev),60(games),100(users),105(input),109(netdev),997(gpio),998(i2c),999(spi)

いろんなグループが出てきました。sudoaudioi2cなどいろいろありますね。 それぞれのグループが何に使われているかを調べて、必要なものだけ設定するのがベストでしょうが、新しいユーザーも同じグループに全部所属させておいてもよいでしょう。

ユーザー作成

まずは新しいユーザーを作成します。例として、mikanという名前のユーザーを作成します。

$ sudo adduser mikan
Adding user `mikan' ...
Adding new group `mikan' (1001) ...
Adding new user `mikan' (1001) with group `mikan' ...
Creating home directory `/home/mikan' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for mikan
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

フルネームや部屋番号など聞かれますが、全部空白で良いです。 太古の昔からある仕組みなので、今ではほとんど使われないでしょうが、こういう設定項目が残っています。

これで新しいユーザーとグループができ、ホームディレクトリ/home/mikanもできました。

所属グループの設定

先ほど出てきた様々なグループに全部所属させましょう。ただし、piグループはpiユーザー用のグループなので不要です。

$ sudo usermod -aG adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio mikan

これでグループが同じになりました。

ログインの確認

新しいユーザーでログインできるか確認してみましょう。新しくSSHでログインしても良いですし、ローカルホストにログインしても良いです。

$ ssh mikan@localhost
mikan@localhost's password:
Linux raspberrypi 4.19.57-v7+ #1244 SMP Thu Jul 4 18:45:25 BST 2019 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
mikan@raspberrypi:~ $

作成したユーザーでログインできていれば成功です。

デフォルトユーザー(pi)削除

先ほどまではpiユーザーで作業していましたが、ログアウトしてしまいましょう。削除します。

ユーザーの削除

新しく作ったmikanユーザーでログインし、piユーザーを削除します。

$ sudo userdel pi

これでpiユーザーが消えました。ホームディレクトリ/home/piは残ったままになります。 もし、ホームディレクトリごと消したい場合は、sudo userdel -r piと、-rオプションを付けます。

piユーザーがログインしている状態では削除できませんのでご注意ください。

(もしくは)ログイン禁止

ユーザーを消さずに、ログインを禁止するだけにもできます。 この場合は再度ログインを許可すれば元のまま復活します。

$ sudo usermod -s /bin/false pi

これでpiユーザーはパスワードがあっていようが、ログインできなくなります。 これはログインシェルを/bin/falseに変えるコマンドで、ログイン後にシェルの起動をせず直ちにログアウトする動作になります。 元に戻すには、次のようにします。

$ sudo usermod -s /bin/bash pi

これで、ログインするとbashが起動して操作できるようになります。


  1. ユーザー名を変えればよいというものではありませんよ。ともかく、推測されにくいパスワードを使うことや、SSHなら公開鍵認証を使うことが重要です。