RaspberryPi 3 デフォルトユーザpiの変更
Contents
デフォルトユーザpiの変更
RaspberryPiのOS(Raspbian)にはデフォルトのpiユーザがある。
- ユーザID(ログイン名):pi
- パスワード:raspberry
osの最初の起動のときにはこのユーザを使用するのだが、そのまま使っているとroot権限を持っていることもありセキュリティ上問題があるのでユーザID(ログイン名)の変更を行う事にした。
尚、当初piユーザを削除して新しくユーザを作成するつもりでいたのだがネットで調べてみるとpiは削除せずにログイン名の変更をしたほうがpiで作成したファイルやディレクトリに対する権限が引き継がれるのでトラブルが少ないとの記事を多数見つけたのでその方法でやることにした。
先人の方達の知恵に感謝する。
やった手順を忘れないように備忘録の意味で記事にしておく。
手順概要
大まかな手順は以下の通り。
- 仮のtmpユーザを作成(後で削除する)
- 自動ログインユーザをpiから変更する
- ブートをデスクトップからCLIに変更する
- tmpでログインしてpiユーザID(ログイン名)を変更
- 新しいユーザIDでログインしてパスワードを設定
- 自動ログインユーザを新しいユーザに変更
- 仮のtmpユーザの削除
- ブートをCLIからデスクトップに戻す
尚、ネットで検索すると表示される他の記事ではCLI(Command Line Interface)前提でユーザID変更をおこなっているのに対して自分は最初はデスクトップ環境で変更をしようとしたので恐らく冗長な操作が混じっている。
試行錯誤した部分も含めて記事にしているので、その前提で読んで欲しい。
手順
仮のtmpユーザを作成
piでログイン中は自分自身のログイン名を変更することが出来ないのでpi→newidに変更処理をする為だけの一時的なID(tmp)を作成する。
デスクトップ環境からLXTerminalを起動する。
下記のコマンドでtmpユーザを作成した後、sudo権限を追加する。
尚、パスワードは何でも良い。
sudo adduser tmp
sudo gpasswd -a tmp sudo
useraddでユーザを作成をしていた記事もあったがuseraddによるユーザの作成だとhomeディレクトリを作成しないので後でtmpでログインし直す時にデスクトップにログインが出来なかったのでadduserを使った。
しかしCLI前提であればuseraddでも良いのかも知れない。
自動ログインユーザの変更
自動ログインユーザがpiになっているので停止またはtmpに変更する。
lightdm.confファイルの変更
/etc/lightdm/lightdm.conf ファイルを編集してautologin-user=piの行を#でコメントアウトする。
ちなみにLightDMはディスプレイマネージャ。
ubuntuのバージョン16.04 LTSまではLightDMで以降のバージョンではGDM(GNOME Display Manager)に変更されているので、そのうちRaspbianでもGDMになるのかも知れない。
sudo vi /etc/lightdm/lightdm.conf
autologin@.serviceファイルの変更
/etc/systemd/system/autologin@.serviceファイルを編集してExecStartのユーザIDをpiからtmpに変更する。
これにより電源を入れたときのTTY(標準入出力)のログイン名が変更される。
sudo vi /etc/systemd/system/autologin@.service
ExecStart=-/sbin/agetty --autologin pi --noclear %I $TERM
↓
ExecStart=-/sbin/agetty --autologin tmp --noclear %I $TERM
変更したら再起動する。
sudo reboot
ブートをデスクトップからCLIに変更する
再起動後にtmpでログインをしてLXTerminalから
who
をした所、tmpユーザの他に何故かpiも居る。
piが接続しているとユーザID(ログイン名)の変更ができない。
tty7は恐らくデスクトップ。。。なのかな(?)
tty1がpiでログインされている理由がイマイチ分からないがRaspberryPiのメニューから設定ー>RaspberryPiの設定のシステム・タブでブートをデスクトップからCLI(Command Line Interface)に変更して再起動する。
tmpでログインしてpiユーザID(ログイン名)を変更
再起動後ssh(PuTTY)で接続してwhoで確認すると今度はtmpしか接続していない。
piユーザのログイン名を変更する
usermodコマンドの-lオプションでログイン名をpiからnewidに変更する。
このコマンドで変更すると今までpiユーザの所有だったファイルも全てnewidに変更されるので不具合が起きにくいとの事。
sudo usermod -l newid pi
上記コマンドではユーザのホームディレクトリは変更されないので-dオプションで変更する。
sudo usermod -d /home/newid -m newid
続いてグループ(同じくusermod -lでは変更されない)もpiからnewidに変更する。
sudo groupmod -n newid pi
tmpの役割はこれで終了。
sudo reboot
で再起動する。
新しいユーザIDでログインしてパスワードを設定
newidでログインをする。
この際のパスワードは当然だが旧ログイン名(pi)のパスワード。
初期状態から変更していないのであれば”raspberry”になっている。
piの時のパスワードがそのままだとセキュリティ上よろしくないので変更する。
sudo passwd newid
自動ログインユーザを新しいユーザに変更する
lightdm.confファイルの変更
先程#でコメントアウトしたautologin-user=piの行をもとに戻して、piをnewidに変更する。
sudo vi /etc/lightdm/lightdm.conf
autologin@.serviceファイルの変更
先程piからtmpに変更したユーザIDをnewidに変更する。
sudo vi /etc/systemd/system/autologin@.service
ExecStart=-/sbin/agetty --autologin tmp --noclear %I $TERM
↓
ExecStart=-/sbin/agetty --autologin newid --noclear %I $TERM
仮のtmpユーザの削除
tmpユーザは不要なので削除する。
-rオプションでホームディレクトリ毎削除する。
sudo userdel -r tmp
ブートをCLIからデスクトップに戻す
ブートをデスクトップに戻す(任意)。
sudo raspi-config
RaspberryPiの設定画面が表示されるので、”3 Boot Options”を選択する。
”B1 Desktop / CLI”を選択する。
”B4 Desktop Autologin”を選択する。
最初の画面に戻るので”Finish”を選択する。
再起動するかを聞かれるので”はい”を選択する。
再起動すると新しいログイン名でデスクトップに自動ログインされる。
以上でログイン名の変更の記事はは終了とする。
この記事が何処かで誰かの役に立つことを願っている。
尚、当記事中の商品へのリンクはAmazonアソシエイトへのリンクが含まれています。Amazonのアソシエイトとして、当メディアは適格販売により収入を得ていますのでご了承ください。
tmpでログインできないし、ID変更できないしで、10時間ほど悩まされました。
このページのご解説で問題が解決できました(ToT)。
ありがとうございました。
コメントありがとうございます。
自分がやった事を後で忘れないように記事にしているのですが、お役に立てたようで良かったです?
自分はCLIに変更するところでハマりました。