その2

ssh

/etc/ssh/sshd_configのPermitRootLoginをnoにしておいた。

開発環境

新しいパッケージが手に入らないのでコンパイルすることもあろうかと開発環境をインストールしておく。

# apt-get install gcc
# apt-get install make
# apt-get install patch
# apt-get install g++

Samba 3 (注:白箱では正常に動かず。)

現時点での最新安定版は3.0.23bなので、これをソースコードからコンパイルすることにした。
まず下準備として、デフォルトではiconvがWindows互換の文字コード変換にならないので、libiconvにパッチを当てておく。
例によってこのページのとおりにパッチを当てる。

$ gzip -dc libiconv-1.10.tar.gz | tar xvf -
$ cd libiconv-1.10
$ gzip -dc ../libiconv-1.10-ja-1.patch.gz | patch -p1
$ ./configure
$ make
# make install
# touch /etc/ld.so.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig -v

iconvを正常にインストールできたか確かめる。

# rm -rf /usr/bin/iconv
# ln -s /usr/local/bin/iconv /usr/bin/iconv
$ iconv -l | grep -- -MS
EUC-JP-MS EUCJP-MS EUCJP-OPEN EUCJP-WIN EUCJPMS
CP932 MS932 SHIFFT_JIS-MS SJIS-MS SJIS-OPEN SJIS-WIN WINDOWS-31J WINDOWS-932 CSWINDOWS31J
CP50221 ISO-2022-JP-MS MS50221 WINDOWS-50221

続いてSamba3のコンパイルとインストール。

$ wget ftp://ftp.samba.gr.jp/pub/samba/samba-3.0.23b.tar.gz
$ tar zxvf samba-3.0.23b.tar.gz
$ cd samba-3.0.23b/source
$ ./configure --with-libiconv=/usr/local --with-automount --with-smbmount --with-pam --with-pam_smbpass --with-utmp --with-smbwrapper --with-syslog --with-quotas

PAM関連のヘッダファイルがないとか言われたので

# apt-get install libpam0g-dev

をしてもう一度configureしてmake、make install。

$ make
$ su
# make install

コンパイルにはおよそ5〜6時間程度かかる。(多少手間がかかるかもしれないがもっと速いマシンでクロスコンパイル環境を組んでコンパイルしたほうがいいかな?)
SWATを起動させる場合は、/etc/inetd.confに

swat        stream tcp nowait.400 root /usr/local/samba/sbin/swat swat

を書き足して

# /etc/init.d/inetd restart

すればSWATが起動するようになる。


ついでに起動スクリプトを準備する。適当なSambaパッケージをダウンロードしてきて取り出す。

$ mkdir tmp
$ dpkg -X samba-3.0.14a-3_sh4.deb ./tmp 

としてやればtmp/etc/init.d/に起動スクリプトが展開されている。ただし、プログラムの場所などが違うので直す必要があるが、スクリプトを弄るよりもファイルをリンクするほうが確実。(smbd、nmbdはシンボリックリンクだと起動スクリプトから操作できないのでハードリンクを作成。ついでにlogrotateしておく。)

# ln /usr/local/samba/sbin/*mbd /usr/sbin/
# mkdir /etc/samba
# touch /usr/local/samba/lib/smb.conf
# ln -s /usr/local/samba/lib/smb.conf /etc/samba/
# mkdir /var/run/samba
# mkdir /var/log/samba
# touch /usr/local/samba/var/log.smbd
# touch /usr/local/samba/var/log.nmbd
# ln -s /usr/local/samba/var/log.* /var/log/samba/
# cp ./tmp/etc/init.d/samba /etc/init.d/
# cp ./tmp/etc/logrotate.d/samba /etc/logrotate.d/

エディタかSWATを使ってsmb.confのGlobalセクションにpidファイルの場所を指定しておく。

[Global]
(前略)
pid directory = /var/run/samba
(後略)


これで

# /etc/init.d/samba start

とするとSambaが起動する。
とりあえず起動できることを確認したら起動スクリプトとして登録する。

# update-rc.d samba defaults 80

優先度は30から80が空いているのでこの間の適当な数字にすればいいだろう。