ブログ

Armadillo上でユーザを追加して保存する

at_kazutaka.bito
2014年9月25日 10時14分

通常、Armadillo上でユーザを追加しても、電源をOFFにすると追加したユーザは消えてしまうので、 次の起動時に追加したユーザでログインできない。 電源をOFFにしても、次の起動時に追加したユーザでログインができるように、追加したユーザを保存する方法を試してみた。

1.一度ビルドする。
[atde ~]$ cd ~/atmark-dist
[atde ~/atmark-dist]$ make
 
2.上記1で生成されたromfs/etc内のpasswd、shadow、group、gshadow
 をromfs/etc/defaultに移動する。
[atde ~/atmark-dist]$ cd ~/atmark-dist/romfs/etc
[atde ~/atmark-dist/romfs/etc]$ mv passwd ./default/
[atde ~/atmark-dist/romfs/etc]$ mv shadow ./default/
[atde ~/atmark-dist/romfs/etc]$ mv group ./default/
[atde ~/atmark-dist/romfs/etc]$ mv gshadow ./default/
 
3.下記のようにromfs/etcに、passwd、shadow、group、gshadow
 とromfs/etc/config内の同名ファイルでリンクを貼る。
[atde ~/atmark-dist/romfs/etc]$ ln -s /etc/config/passwd passwd
[atde ~/atmark-dist/romfs/etc]$ ln -s /etc/config/shadow shadow
[atde ~/atmark-dist/romfs/etc]$ ln -s /etc/config/group group
[atde ~/atmark-dist/romfs/etc]$ ln -s /etc/config/gshadow gshadow
 
3.make imageでイメージファイルを生成する。
[atde ~]$ cd ~/atmark-dist
[atde ~/atmark-dist]$ make image
 
4.上記3で生成したイメージをArmadilloに書き込む。
 
5.上記4のイメージを書き込んだArmadilloを起動して
 rootユーザでログインする。
 
6.adduserでユーザを追加。(以降はユーザ名を"user1"とした場合)
[armadillo ~]# adduser user1
 
7./etc/shadowを/etc/configにコピー。
[armadillo ~]# cp /etc/shadow /etc/config/
 
8.起動時にユーザのホームディレクトリを作成するように
[armadillo ~]# vi /etc/config/rc.local
でエディタを開いて、rc.localファイルに
mkdir /home/user1
を追加。
 
9./etc/config領域をROMに保存。
[armadillo ~]# flatfsd -s

上記手順によりArmadilloを再起動してもArmadillo上で追加したユーザ(user1)でログインできた。

注意)本方法だと、ROMのコンフィグ領域(/etc/config/)にパスワードを記録しているので、このファイルを改ざんされるとパスワードを突破される。