|
|
|
|
|
INDEX |
|
1. Samba のインストール
2. smb.conf の編集
3. swat のインストール
4. プリントサーバーの構築
5. 参考文献
|
|
Samba のインストール |
|
さて、いよいよSambaをインストールし、ファイルサーバーとして機能させる。ゴミ箱機能が欲しくてこのLinux Box 化を始めたのだからSambaのバージョンが3.0以上でなければ意味がない。さっそく、debian.dodes.org
に置いてあるSambaパッケージのバージョンを確認してみると…2.999+3.0.alpha20-1となっている。これでいいのかな?試しにインストールしてみる。
追記:debian.dodes.org ではなく、iohack に3.0.14a のパッケージが置いてあります。
参照:第11回 「各種パッケージのアップグレード
landisk:~# apt-get -s install samba
…
Conf samba (2.999+3.0.alpha20-1 debian.dodes.org)
landisk:~# apt-get install samba
…
The rest of the configuration of Samba deals with questions that
affect parameters in /etc/samba/smb.conf, which is the file used
to configure the Samba programs (nmbd and smbd.) If you want to
be asked just a few questions then select "Yes" and continue with
the configuration. If you want to have full control, select No"
and configure your smb.conf manually or through SWAT.
Configure smb.conf through debconf?
<Yes> <No>
// smb.conf を手動で編集するか、debconf で作成するか?
//手動で編集するので「No」を選択。
The Samba services (nmbd and smbd) can run as normal daemons or
from inetd. Running as daemons is the recommended approach.
How do you want to run Samba?
daemons
inetd
//デーモンで起動させるか、inetd経由で起動させるか?
//daemons を選択
To be compatible with the defaults in most versions of Windows,
Samba must be configured to use encrypted passwords. This requires
user passwords to be stored in a file separate from /etc/passwd.
This file can be created automatically, but the passwords must be
added manually (by you or the user) by running smbpasswd, and you
must arrange to keep it up-to-date in the future. If you do not
create it, you will have to reconfigure samba (and probably your
client machines) to use plaintext passwords. See /usr/share/doc/samba-doc/htmldocs/ENCRYPTION.html
from the samba-doc package for more details.
Create samba password database, /etc/samba/passdb.tdb?
<Yes> <No>
//パスワードデータベース(passdb.tdb)を作成するかどうか?
//No を選択
|
どこに何がインストールされたかを確認してみる。
/etc/samba/smb.conf
/etc/init.d/samba
/etc/cron.daily/samba
/etc/logrotate.d/samba
/usr/sbin/smbd
/usr/sbin/nmbd
/usr/sbin/mksmbpasswd
/usr/bin/testparm
|
|
|
|
Smb.conf の編集 |
|
|
設定ファイルの/etc/samba/smb.conf を編集していく。ここではあえて細かなパラメータの意味までは解説しない。他のもっと詳しいサイトを参考にしてください。LANDISKと同じようなファイルサーバー環境を作成したい場合は、debian
環境から抜けて、LANDISK上の /etc/samba.d/smb.conf を参照する。以下は元のLANDISK環境のパラメータを模倣しつつ、自分用にカスタマイズしたものです。また、あくまで動作確認のために誰でもアクセスできる共有ディレクトリを作成してみる。
[global]
workgroup = kororo.jp
server string = Landisk Chroot
unix charset = UTF-8
dos charset = CP932
display charset = UTF-8
netbios name = LANDISK
guest account = nobody
hosts allow = 172.16.50.,127.
log file = /var/log/samba/log.%m
max log size = 50
security = user
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
socket options = TCP_NODELAY SO_RCVBUF=32768
SO_SNDBUF=32768
os level = 0
unix password sync = Yes
null passwords = Yes
# ゴミ箱機能に関する指定
vfs objects = recycle
recycle:repository = .recycle/%u
recycle:keeptree = yes
recycle:touch = yes
recycle:versions = yes
recycle:maxsize = 0
[public]
comment = Public Stuff
path = /share/iPOD
read only = No
create mask = 0777
directory mask = 0777
guest only = Yes
guest ok = Yes |
smbpasswd ファイルを作成しておく。できあがった /etc/samba/smbpasswd を開いて不要なアカウントを削除しておく。
landisk:~# mksmbpasswd < /etc/passwd > /etc/samba/smbpasswd
landisk:~# vi /etc/samba/smbpasswd
不要なアカウントの削除
landisk:~# chmod 600 /etc/samba/smbpasswd
|
ここまでできたらとりあえず、smb.conf の構文チェックをかけておく。ふむふむ、OKのようだ。だが、vfs objects を認識してくれなかったので、きっとゴミ箱機能が使えないバージョンなのだろう。残念。
landisk:~# testparm
Load smb config files from /etc/samba/smb.conf
Unknown parameter encountered: "vfs objects"
Ignoring unknown parameter "vfs objects"
Processing section "[homes]"
Processing section "[public]"
Processing section "[printers]"
Loaded services file OK.
Press enter to see a dump of your service definitions
|
それではsamba を起動してみる。なにやらたくさんのプロセスがでてきた。おかしいなと思い、ログを見てみると、Error
= Address already in use というエラーが表示されている。すでに139番ポートが使われているというわけだ。きっとLANDISK上でもSamba
が起動しているからなのだろうと思い、新規ターミナルを起動させ、LANDISK上のsamba を停止させてみる。その後、debian 環境に戻り、sambaを再び起動させてみる。これで準備は万端。Windowsマシンに戻って共有ディレクトリにアクセスできるか試してみたところ、public
と書かれた共有ディレクトリにアクセスすることができた。以下のログはこの過程を記したものである。
# debian 環境でsambaを起動させる
landisk:~# /etc/init.d/samba start
landisk:~# ps aux | gpre smb
# ps aux | grep smb
root 585 0.0 0.2 4452 156 ? S Aug20 0:00 /usr/sbin/smbd -D -s /var/lock/smb.conf
root 587 0.0 0.8 3412 536 ? S Aug20 0:05 /usr/sbin/nmbd -D -s /var/lock/smb.conf
root 753 0.0 1.0 5028 672 ? S Aug20 0:01 /usr/sbin/smbd -D -s /var/lock/smb.conf
root 804 0.1 3.0 5084 1904 ? S Aug20 3:54 /usr/sbin/smbd -D -s /var/lock/smb.conf
root 964 1.3 2.1 5192 1364 ? S Aug21 32:42 /usr/sbin/smbd -D -s
/var/lock/smb.conf
root 2809 0.0 0.7 1472 460 ? S 09:21 0:00 grep smb
# ログをみると既に139ポートが使われているというエラー
landisk:~# tail /var/log/samba/log.smbd
bind failed on port 139 socket_addr = 0.0.0.0.
Error = Address already in use
[2005/08/23 09:19:08, 0] smbd/server.c:main(788)
smbd version 2.999+3.0.alpha20-1 for Debian started.
Copyright Andrew Tridgell and the Samba Team 1992-2002
[2005/08/23 09:19:09, 0] printing/pcap.c:pcap_printer_fn(363)
Unable to open printcap file /etc/printcap for read!
[2005/08/23 09:19:09, 0] lib/util_sock.c:open_socket_in(711)
bind failed on port 139 socket_addr = 0.0.0.0.
Error = Address already in use
# LANDISK環境に戻ってsamba を停止させる
------------------ここから新規ターミナル------------------
# /etc/rc.d/rc3.d/S91samba stop
Stopping nmbd
Done
Stopping smbd
Done
# ps aux | grep smb
root 2998 0.0 0.8 1828 508 pts/1 S 19:22 0:00 grep smb
------------------ここまで新規ターミナル------------------
# Windows上からLANDISKの共有へアクセスを試みるが当然アクセスできなくなっている。
# debian 環境に戻ってsamba を起動させてみる。
landisk:~# /etc/init.d/samba start
Starting Samba daemons: nmbd smbd.
landisk:~# ps aux | egrep 'smb|nmb'
root 1514 0.0 3.1 6140 1976 ? S 03:38 0:00 /usr/sbin/nmbd -D
root 1516 0.0 3.5 7884 2224 ? S 03:38 0:00 /usr/sbin/smbd -D
root 1530 0.0 0.7 1472 460 ? S 03:39 0:00 egrep smb|nmb
# この時点でWindows側からアクセスできるか確認する。
|
|
|
|
swat のインストール |
|
|
apt-get でインストール。
landisk:~# apt-get install swat |
swat を利用するには、/etc/inetd.conf を編集する。ファイルを開いたら、先頭にある「#<off>#」を取り除く。
landisk:~# vi /etc/inetd.conf
#<off># swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat
↓
swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat |
inetd を再起動する。
landisk:~# /etc/init.d/inetd restart |
とやれば出来ると思ったんだが、よく考えたらLANDISK環境でtelnetd と ftpd がinetd 経由で動作している。ということは、LANDISK環境のinetd
デーモンを停止させるとtelnet ではログインできなくなる(SSHでログインできるから問題はないが)。ってことは、debian_start スクリプト(第4回目参照:シェルスクリプトのこと)にこう加えるわけか。
landisk:~# vi debian_start
$root/usr/sbin/chroot $root /etc/init.d/inetd restart |
|
|
|
プリントサーバーの構築 |
|
|
次にプリントサーバーを使えるようにする。ここでの方法はLANDISK上の環境と全く同じ環境を作り出していくが、ここまで徹底しなくても普通に動作するかもしれない。まずは、lpr
をインストールする。
landisk:~# apt-get install lpr
landisk:~# mkdir -p /mnt/hda3/spool/samba/lp //プリンタのパス。以下後述。
landisk:~# adduser --shell /bin/false admin
landisk:~# chown admin.admin /mnt/hda3/spool/samba/lp
landisk:~# chmod 777 /mnt/hda3/spool/samba/lp
landisk:~# chmod o+t /mnt/hda3/spool/samba/lp
landisk:~# mkdir -p /mnt/hda3/spool/lpd/lp //スプールディレクトリ
landisk:~# chown lp.lp /mnt/hda3/spool/lpd/lp
landisk:~# chmod 770 /mnt/hda3/spool/lpd/lp
landisk:~# cd /mnt ; mkdir usb1 usb2 |
smb.conf でプリンタの設定を追加する。
landisk:~# vi /etc/samba/smb.conf
#======================= Global Settings =====================================
# printer
load printers = yes
printing = lprng
printer admin = admin, nobody
# print command = /usr/bin/lpr -r -P%p %s
lpq command = /usr/bin/lpq -P%p %s
lprm command = /usr/bin/lprm -P%p %j
#============================ Share Definitions ==============================
[printers]
comment = USBPRINTER
path = /mnt/hda3/spool/samba/lp
printable = yes
browseable = yes
|
/etc/printcap に以下の記述をしておく。
landisk:~# vi /etc/printcap
# /etc/printcap for LANDISK
lp:\
:ml=0:\
:mx=0:\
:sd=/mnt/hda3/spool/lpd/lp:\
:af=/mnt/hda3/spool/lpd/lp.acct:\
:sh:\
:lp=/dev/usb/lp0
|
samba と lpd を再起動する。あとは、クライアントマシンにプリンタのドライバをインストールして、\\ayano\lp (または//ayano/lp)でアクセスしてみてください。それと実際にテスト印刷してみて正常に動作するか確認しておきましょう。正常に印刷されない場合は、debian環境のlpd
が正しく起動していない可能性があります。lpd を起動させる前に一旦LANDISK環境のlpd を停止させておくこと。
landisk:~# /etc/init.d/samba restart
landisk:~# /etc/init.d/lpd start |
|
|
|
参考文献 |
|
|
■@IT:Samba
3.0の全貌 改訂版[前編](1-3)
■@IT:Samba
3.0の全貌 改訂版[後編](1-3)
|