🔑

【Ubuntu】PINログインができるようにする

2023/05/25に公開

はじめに

GPD Win4 に、Ubuntuをインストールしてみたはいいのですが、指紋センサを検出してくれないために、毎回パスワードを入力しなくてはいけない事態になりました。おとなしくWindows使えよ、と言われそうな話ではあるのですが、Ubuntuがやっぱり好きなので、PINを使えるようにすることで、不便を解消することにしました。

英語の記事はそこそこあるのですが、日本語の記事は少ないのと、実際にやってみるといくつかハマりポイントがあったので、せっかくだからと記事にしてみることにしました。

手順

  1. まず、apt updateします。
sudo apt update
  1. ユーザーの認証を処理するソフトウェアコンポーネントであるPAM(Pluggable Authentication Modules)を入れます。
sudo apt install -y libpam-pwdfile
  1. パスワードを生成するコマンドであるmkpasswdを使えるようにするために、whoisを入れます。
sudo apt install whois
  1. 現在のシェルをルートシェルとして継続するためのコマンドを入力。sudo -sだと新しいシェルに入り、そのシェルでスーパーユーザーとして実行するので、やや挙動が違うようです。
sudo -i
  1. もともとの/etc/pam.d/gdm-passwordファイルのパックアップをとっておきます。
cp /etc/pam.d/gdm-password /etc/pam.d/gdm-password_ORIGINAL
  1. 自分のコンピュータのユーザー名をXXXXの部分に入れて、以下のコマンドを打ちます。(ここでmkpasswdを使用してますね。)
echo "XXXX:$(mkpasswd -5)" > /etc/custompinfile

# 例:ユーザー名が`tanaka`の場合
echo "tanaka:$(mkpasswd -5)" > /etc/custompinfile
  1. パスワードの入力を求められるので、ここにPINコードにしたい文字列や数字を入れます。これがログイン時に入力するPINになります。
PASSWORD: (使用したいPIN)

# 例:PINが1234の場合
PASSWORD: 1234
  1. /etc/pam.d/gdm-passwordファイルを開きます。
# vimの人:
sudo vim /etc/pam.d/gdm-password

# nanoの人(自分はこっちです):
sudo nano /etc/pam.d/gdm-password
  1. 以下の内容を、#%PAM-1.0の直下の行である2行目に追記します。
auth    sufficient  pam_pwdfile.so pwdfile=/etc/custompinfile

記述後のイメージはこちら。

#%PAM-1.0
auth    sufficient      pam_pwdfile.so  pwdfile=/etc/custompinfile
auth    requisite       pam_nologin.so
auth    required        pam_succeed_if.so user != root quiet_success
  1. 保存して終了。(nanoの人はCtrl+X、vimの人は:wq

  2. Ubuntuからログアウトすると、PINでログインできるようになっているはずです!!

おわりに

ターミナルでルートユーザーになる際にもPINが使えたらいいんですが、さすがにそれは厳しそうでした。
再起動時でも通常のパスワードが必要になるという記事もありましたが、自分は問題なくPINでログインできました!

参考

https://randomblog.hu/setting-up-pin-unlock-for-ubuntu-linux/
https://gist.github.com/dmcbane/3ce77630e5070dc87ce777fc71c1ea72
https://askubuntu.com/questions/1219215/unlocking-ubuntu-with-a-pin-instead-of-a-long-password

Discussion