piユーザの名称変更

Raspbian のイメージファイルで環境構築を行うと、ユーザ pi がデフォルトで設定されています。
管理者権限同様にユーザ名が固定化されているのはアクセスコントロールの観点から好ましいものではありません。

そこで、pi ユーザの名称変更を行います。
(削除&新規作成する場合には、ユーザid・グループidなどを引き継ぐようにした方が無難です)。

目次

現状確認

shadow ファイル確認

ユーザのパスワードを暗号化して格納するファイル"shadow"を確認します。

2つのユーザ(pi, www-data)にパスワードが設定されていることが分かります。
※先日のRaspbian 設定の際、www-data ユーザにパスワードを設定しているため。

$ sudo cat /etc/shadow
~~~
pi:$6$sAAJmQZx$xxxxxxxxxxxxxxxxxxxxxxxx:17706:0:99999:7:::
messagebus:*:17639:0:99999:7:::
statd:*:17639:0:99999:7:::
sshd:*:17639:0:99999:7:::
avahi:*:17639:0:99999:7:::
mysql:!:17706:0:99999:7:::
  • /etc/shadow
    フィールドは: (コロン)区切り

    1. ユーザ名(ログイン名)
    2. 暗号化されたパスワード
    3. 最後にパスワードが変更された年月日(1970 年 1 月 1 日からの経過日数で表示)
    4. パスワードが再度変更可能になるまでの日数(この期間を越えないと変更不可)
    5. パスワードの変更が必要になるまでの日数(この期間を越えたら変更必要)
    6. パスワード有効期限切の警告を何日前から通知するか(日数)
    7. 有効期限経過後にパスワードを変更しなかった場合にアカウントが使用不可になるまでの日数
    8. アカウントが使用不可になるまでの日数(1970 年 1 月 1 日からの経過日数で表示)
    9. フラグ(未使用)
      • 第2フィールド
        * を設定すると root がパスワードを設定するまでログイン不可。
        ロックすると「!」が設定される。
      • その他
        1970年からの経過日数は適当でOK(パスワード設定すれば上書きされる)。

ユーザ名の変更

仮ユーザ作成

$ sudo useradd -M tmpuse
$ sudo usermod -aG sudo tmpuse
$ sudo passwd tmpuse
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました
$ exit

リネーム

仮ユーザでログインし、pi ユーザを変更します。

$ ssh tmpuse@192.168.2.211

$ sudo usermod -l rasp pi
$ sudo usermod -d /home/rasp -m rasp
$ sudo groupmod -n rasp pi

$ sudo passwd rasp
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました

$ sudo userdel tmpuse
userdel: user tmpuse is currently used by process 30751

$ exit

付則 : アカウントロック

コマンドでアカウントロックが可能です。

  • usermod => 詳細
    • 書式
      usermod [オプション] {ユーザー名}

      引数 内容
      -L,
      --lock
      指定アカウントをロックする
      -U,
      --unlock
      指定アカウントのロックを解除する
  • passwd => 詳細
    • 書式
      passwd [オプション] {ユーザー名}

      引数 内容
      -l,
      --lock
      指定アカウントをロックする
      -u,
      --unlock
      指定アカウントのロックを解除する
  • groupmod => 詳細