Howto

ログインユーザを追加する

Armadilloにログインユーザを追加する手順を説明します。追加したユーザは、ユーザランドのフラッシュイメージ内に組み込みます。

初めから存在するユーザは以下の通りです。

ユーザ名 パスワード 権限
root root rootユーザ
guest (なし) 一般ユーザ

このHOWTOでは、以下のユーザを追加する手順を紹介します。

項目 設定
ログイン名 test-user
パスワード test-password
グループ名 test-group
グループパスワード (なし)
ユーザID番号 502
グループID番号 502
ホームディレクトリ /home/test-user
コマンドインタプリタ /bin/ash

1. ユーザの追加

ユーザ"test-user"を追加します。atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/passwdに以下の行を追記してください。ディレクトリ[PRODUCTS]は、atmark-distのコンフィギュレーションで設定するボード名と同じ名前です。

test-user:x:502:502::/home/test-user:/bin/ash

passwdファイルの書式は以下のようになります。各フィールドは":"で区切られます。

ログイン名:パスワード:ユーザID番号:グループID番号:コメント:ホームディレクトリ:コマンドインタプリタ

各フィールドは以下のような意味を持ちます。

フィールド 説明
ログイン名 追加するユーザのログイン名
パスワード パスワードがシャドウ化されている場合は"x"を指定する
ユーザID番号 追加するユーザのユーザID番号
グループID番号 追加するユーザのグループID番号
コメント このフィールドはコメントとして扱われる
","で区切ってumask(ファイルモード作成マスク)などの設定を行なうことが可能
ホームディレクトリ 追加するユーザのホームディレクトリ
コマンドインタプリタ 追加するユーザのコマンドインタプリタ(ログインシェル)

passwdファイルに関するより詳しい情報は、manページをごらんください。

[PC ~]$ man 5 passwd

2. グループの追加

グループ"test-group"を追加します。atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/groupに以下の行を追記してください。

test-group:x:502:

groupファイルの書式は以下のようになります。各フィールドは":"で区切られます。

グループ名:パスワード:グループID番号:グループのメンバー

各フィールドは以下のような意味を持ちます。

フィールド 説明
グループ名 追加するグループの名前
パスワード グループパスワードがシャドウ化されている場合は"x"を指定する
グループID番号 追加するグループのグループID番号
グループのメンバー 追加するグループに所属するユーザ名を","で区切ってリストする

groupファイルに関するより詳しい情報は、manページをごらんください。

[PC ~]$ man 5 group

3. ホームディレクトリの作成

ホームディレクトリを作成します。以下のコマンドを事項してください。

[PC ~]$ cd atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/home
[PC ~/atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/home]$ mkdir test-user

ホームディレクトリの所有者を変更します。atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/init.d/rcに以下の行を追記してください。

chown -R test-user:test-group /home/test-user

4. パスワードの設定

パスワードは暗号化された値をshadowファイルに記述します。パスワードを暗号化するために、atmark-distに含まれる"crypt.pl"スクリプトを使用します。

[PC ~]$ perl atmark-dist/tools/crypt.pl test-password
4TGBXThlr57ws

crypt.plは、"ソルト"と呼ばれるランダムな値を使用してパスワードを暗号化します。そのため、"crypt.pl"は実行するたびに異なる値を返しますがどの値を使用しても問題ありません。上記の場合は、"test-password"を暗号化した文字列は、"4TGBXThlr57ws"となりました。atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/shadowに以下の行を追記してください。

test-user:4TGBXThlr57ws:0:0:99999:7:::

shadowファイルの書式は以下のようになります。各フィールドは":"で区切られます。

ログイン名:パスワード:最終更新日:日数1:有効期限:日数2:日数3:日数4:予約フィールド

各フィールドは以下のような意味を持ちます。

フィールド 説明
ログイン名 追加するユーザのログイン名
パスワード 暗号化されたパスワード
最終更新日 1970年1月1日から、最後にパスワードが変更された日までの日数
日数1 パスワードが変更可能となるまでの日数
有効期限 パスワードを変更しなくてはならなくなる日までの日数
日数2 パスワード有効期限が来る前に、ユーザが警告を受ける日数
日数3 パスワード有効期限が過ぎてからアカウントが使用不能になるまでの日数
日数4 1970年1月1日からアカウントが使用不能になる日までの日数
予約フィールド 予約フィールド

atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/shadowには、書き込み権限が無いため、編集前に書き込み権限を追加する必要があります。

[PC ~]$ chmod +w atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/shadow
[PC ~]$ vi atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/shadow
[PC ~]$ chmod -w atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/shadow

shadowファイルに関するより詳しい情報は、manページをごらんください。

[PC ~]$ man 5 shadow

5. グループパスワードの設定

グループパスワードを追加します。atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/gshadowに以下の行を追記してください。

test-group:!::

groupファイルの書式は以下のようになります。各フィールドは":"で区切られます。

グループ名:パスワード:グループ管理者:グループのメンバー

各フィールドは以下のような意味を持ちます。

フィールド 説明
グループ名 追加するグループの名前
パスワード 暗号化されたグループパスワード
"!"が指定された場合は、追加するグループへのログインを許可しない
グループ管理者 追加するグループにメンバーの追加/削除できるユーザ名を","で区切ってリストする
グループのメンバー 追加するグループのメンバーを","で区切ってリストする

atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/gshadowには、書き込み権限が無いため、編集前に書き込み権限を追加する必要があります。

[PC ~]$ chmod +w atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/gshadow
[PC ~]$ vi atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/gshadow
[PC ~]$ chmod -w atmark-dist/vendors/AtmarkTechno/[PRODUCTS]/etc/gshadow

gshadowファイルに関するより詳しい情報は、manページをごらんください。

[PC ~]$ man 5 gshadow

以上でユーザの追加は完了です。すでにatmark-distをビルド済みの場合は以下のコマンドを入力してイメージファイルを作成してください。

[PC ~]$ cd atmark-dist
[PC ~/atmark-dist]$ make romfs image

atmark-distがビルドされていない場合は、HOWTO: ソースコードからデフォルトイメージを作成するを参考にして作成したイメージファイルしてください。

作成したイメージファイルをArmadilloのフラッシュメモリに書き込むと追加したユーザでログインできます。