2010-03-21

玄箱の再セットアップ

Debian 化した玄箱が起動しなくなってしまった.結局原因はわからなかったが,再セットアップの記録を残す.背面のリセットスイッチを押したまま起動して EM モードにしても外部から接続できなかったため,HDD を取り出して PC に接続して,第 1 パーティションを書き換えた.その後,起動した玄箱を操作した.

イメージファイルの展開

# mke2fs -j /dev/hdc1
# mount -t ext3 /dev/hdc1 /home1
# cd /home1
# tar xvzf /tmp/debian-etch-2.6.25.1-kuroBOX-20090317.tgz

第 1 パーティションを破壊したあと,『玄箱/Debian/インストール』から得たイメージファイルを,マウントした第 1 パーティションにて展開した.

蛇足だが,HDD を廃棄・譲渡する前など,復元が難しくなるよう消去するには以下のようにする.

# dd if=/dev/zero of=/dev/hdc1
# shred --iterations=1 --zero /dev/hdc1

ネットワークの設定

vi etc/network/interfaces
address 192.168.0.100
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

このように,必要な行を書き換えた.その他,etc/hostsetc/hostnameetc/hosts.allowetc/hosts.denyetc/resolve.conf を編集したあと,再度玄箱を組み立てて起動した.

ユーザアカウントの設定

% telnet 192.168.0.100
...
kuro login: tmp-kun
...
Linux kuro 2.6.25.1-kurobox #10 Sun May 4 21:50:38 JST 2008 ppc

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
1 failure since last login.
Last was Sun Mar 21 09:46:21 2010 on pts/0.

telnet でログイン.

tmp-kun@kuro:~$ su - root
kuro:~# passwd

まずは root のパスワードを変更した.

kuro:~# groupadd --gid 1001 radio
kuro:~# useradd --home-dir /home/radio --gid 1001 --create-home --uid 1001 --shell /bin/bash radio
kuro:~# passwd radio

自分のユーザを追加.

% telnet 192.168.0.100

ログインできることを確認.

kuro:~# userdel tmp-kun
kuro:~# rm -r /home/tmp-kun

テンポラリユーザ tmp-kun を削除.

# useradd --home-dir /nonexistent --gid 1000 --uid 1000 --shell /bin/false note
# useradd --home-dir /mnt/tm --gid 1001 --uid 1002 --shell /bin/false tm

ついでに私はここで,必要なユーザを追加した.

パッケージのアップグレード

kuro:~# vi /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian/ etch main contrib non-free
deb http://ftp.jp.debian.org/debian-volatile/ etch/volatile main contrib non-free

既存の行はすべて無効にして,上記 2 行を追加 (参考:『Debian JP Project - ミラーサイトについて』).

kuro:~# apt-get update
W: GPG error: http://ftp.jp.debian.org etch Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9AA38DCD55BE302B
kuro:~# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 9AA38DCD55BE302B
kuro:~# gpg --armor --export 9AA38DCD55BE302B | apt-key add -

この対処法は,検索の結果『GPG errorからの回復メモ - プロキオンのはてな』から得た.

kuro:~# apt-get update
kuro:~# apt-get upgrade

必要パッケージのインストール

kuro:~# apt-get install ssh sudo jed jless ntp samba rsync ssmtp

途中,samba のインストールのために Workgroup/Domain Name の入力を求められた.

ssh
% ssh 192.168.0.100
radio@kuro's password: 
radio@kuro:~$ 

SSH でログインできることを確認.

kuro:~# apt-get remove telnetd

telnetd を削除.

sudo
kuro:~# visudo
kuro:~# cat /etc/sudoers 
radio ALL=(ALL) ALL

上記行を追加.

ntp
kuro:~# vi /etc/ntp.conf 
kuro:~# /etc/init.d/ntp restart
ssmtp
kuro:~# vi /etc/ssmtp/ssmtp.conf
root=xxxxxxxx+kuro@gmail.com
mailhub=xxxxxxxx.smtp.xxxxxxx.or.jp:xxx
rewriteDomain=kuro.local
hostname=kuro.local
FromLineOverride=NO
AuthUser=xxxxxxxx
AuthPass=........
AuthMethod=LOGIN
# echo test | sendmail root

私は試していないが,mailhub を gmail にする設定もできるようだ (『Send Mail with Gmail and sSMTP』).

kuro:~# apt-get remove exim

exim を削除.

jless
kuro:~# vi /etc/profile
export PAGER=jless
alias less=jless

bash での設定をするため,上記を追加.

samba
kuro:~# vi /etc/samba/smb.conf
[global]
        dos charset = CP932
        workgroup = WORKGROUP
        server string = %h server
        security = SHARE
        obey pam restrictions = Yes
        passdb backend = tdbsam
        passwd program = /usr/bin/passwd %u
        passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *password\supdated\ssuccessfully* .
        syslog = 0
        log file = /var/log/samba/log.%m
        max log size = 1000
        load printers = No
        printcap name = /dev/null
        dns proxy = No
        ldap ssl = no
        panic action = /usr/share/samba/panic-action %d
        invalid users = root
        create mask = 0644

[arch]
        path = /mnt/arch
        guest only = Yes
        guest ok = Yes

[temp]
        path = /mnt/temp
        force user = nobody
        force group = nogroup
        read only = No
        guest only = Yes
        guest ok = Yes

[gt]
        path = /mnt/gt
        valid users = radio
        force user = radio
        force group = radio
        read only = No
        create mask = 0600
        directory mask = 0700
        browseable = No

[tm]
        path = /mnt/tm
        valid users = tm
        force user = radio
        force group = radio
        read only = No
        create mask = 0600
        directory mask = 0700
        browseable = No

[tp]
        path = /mnt/tp
        force user = nobody
        force group = nogroup
        read only = No
        guest only = Yes
        guest ok = Yes
        browseable = No
kuro:~# /etc/init.d/samba restart
kuro:~# smbpasswd radio
kuro:~# smbpasswd tm