参考過去記事:
MSS2にカスタムファームウェアを入れる
カスタムMSS2のパッケージ管理システム(optwareとipkg)について
Sambaは標準で入ってるのに、なぜ自分で導入するの?
純正MSS2にもSambaは入っています。というかNASですから、Sambaこそがメイン機能です。じゃあどうしてわざわざ改めてSambaを入れるかと言うと…、デフォルトで入ってるSambaには「ごみ箱」(recycle bin)機能がないのです。
ごみ箱機能は――削除操作したファイルをいきなりHDDから消してしまわずに、いったん一時的な場所に格納しておく…という説明をするまでもないポピュラーなものですが――PC上ではローカルなHDDにしか使えません。
そのため、NASでごみ箱を使うには、PC側ではなくNAS側で仕組みを用意する必要があるのです。
ipkgを使ってoptwareのSambaをインストール
ではSambaをインストールします。# /opt/bin/ipkg list | grep samba samba - 3.2.15-1 - Samba suite provides file and print services to SMB/CIFS clients. samba2 - 2.2.12-1 - Lightweight Samba suite provides file and print services to SMB/CIFS clients. samba3-dev - 3.2.15-1 - development files for samba3 samba3-swat - 3.2.15-1 - the Samba Web Admin Tool for samba3
現在の安定版が3.4系で、その前の安定版が3.3系なので、optwareで入手できる3.2系は「前の前の安定版」ということになりますが、ごみ箱を使うぶんには差し支えありません。
# /opt/bin/ipkg install samba Installing samba (3.2.15-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/samba_3.2.15-1_arm.ipk package samba suggests installing cups Installing popt (1.15-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/popt_1.15-1_arm.ipk Installing readline (6.0-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/readline_6.0-1_arm.ipk Installing openldap-libs (2.3.43-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/openldap-libs_2.3.43-1_arm.ipk Installing openssl (0.9.7m-5) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/openssl_0.9.7m-5_arm.ipk Installing libdb (4.2.52-3) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/libdb_4.2.52-3_arm.ipk Installing gdbm (1.8.3-2) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/gdbm_1.8.3-2_arm.ipk Installing cyrus-sasl-libs (2.1.23-1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/cyrus-sasl-libs_2.1.23-1_arm.ipk Configuring cyrus-sasl-libs Configuring gdbm Configuring libdb Configuring openldap-libs Configuring openssl Configuring popt Configuring readline Configuring samba The original samba version 2 config (/etc/samba/smb.conf) is no longer working with this version of samba. Please create a new samba version 3 config (/opt/etc/samba/smb.conf). After verify your smb.conf file, modify and execute /opt/etc/init.d/S08samba to activate the samba version 3. Successfully terminated.
Sambaパッケージだけでなく、依存しているパッケージもいくつか自動でインストールされたようです。
これでごみ箱が使えるようになったかというと、最後のメッセージを見るに、いま入れたSambaは自動的には使用可能にならない模様。
指示に従い、/opt/etc/samba/smb.conf を作成してから /opt/etc/init.d/S08samba を書き換えることにします。
smb.confの設定
smb.confを一から作るのも大変なので、デフォルトのsmb.confを流用します。/etc になくて探しましたが、/usr/lib で発見。
(ちなみにSambaが使うディレクトリは、smbd -b としてビルドオプションを表示させれば分かります)
元のSambaのバージョンは 3.0.10 だったので(smbd -Vで確認できます)、設定ファイルの互換性的には問題ないでしょうということで、ごみ箱に関する部分だけ書き加えます。
ユーザーの共有リソースのセクションに、下記赤字部を追加しました。
[***] comment = *** path = /share/*** invalid users = read list = write list = "***" printable = no vfs objects = recycle recycle:repository = .recycle recycle:keeptree = yes recycle:versions = yes
init.d/S08sambaの編集
次に /opt/etc/init.d/S08samba を編集します。とりあえず中身を見てみると、
#!/bin/sh
# set samba_active=1 to activate samba
samba_active=0
[ 1 = $samba_active ] || exit 0
if [ -n "`pidof smbd`" ] ; then
echo "Stopping smbd:"
killall smbd
fi
if [ -n "`pidof nmbd`" ] ; then
echo "Stopping nmbd:"
killall nmbd
fi
sleep 2
echo "Starting nmbd:"
/opt/sbin/nmbd -D
echo "Starting smbd:"
/opt/sbin/smbd -D
なるほど、このままではSambaが起動しないようになっています。
「samba_active=1」と書き換えます。他は触る必要はなさそう。
デフォルトのSambaを無効化
新しいSambaを起動する前に、古いSambaを止めましょう。Web管理画面を Advanced Features > Advanced Configuration >Services と進み、nmbd と smbd のチェックボックスをoffにします。
Sambaの認証ファイルをコピー
このままでも新しいSambaは動きますが、共有フォルダにアクセスしようとしても認証が通りません。パスワードが格納されているファイルもコピーします。# cp /usr/private/secrets.tdb /usr/private/smbpasswd /opt/etc/samba
新しいSambaを起動
# /opt/etc/init.d/S08samba
これでごみ箱も使えるようになったはずです。ファイルを削除すると、.recycleフォルダの中に出現するはず。