Solaris で samba (Solaris のファイルを Windows に提供)
【目次】
 
sambaとは?
Samba は UNIX マシンを SMB サーバに仕立てあげるサーバソフトです。 UNIXマシンをLanManager、Windows 95/NT、OS/2のファイル・サーバや プリンタ・サーバにすることが可能。 付属のソフト(smbclientなど)を使用することで クライアントにすることもできる。
- sambaの本家 にソースがある。 日本の 日本語 samba ユーザ会 の Web ページも参考になります。
 
インストール法
インストール
下では、samba-2.2.8 を書いているが、必ず最新の samba をインストールしましょう(セキュリティ上の理由).
samba-2.2.11-ja-1.0.tar.bz2 を持ってくる
gtar -xvjof samba-2.2.11-ja-1.0.tar.bz2
cd samba-2.2.11-ja-1.0
cd source
./configure sparc-sun-solaris8
make
cp /usr/local/samba/lib/smb.conf /tmp
sh /etc/rc2.d/S78samba stop
pkill smbd
pkill nmbd
/bin/ps -e | grep samba
rm -f /usr/local/samba/tmp/*
rm -rf /usr/local/samba/var/*
rm -rf /usr/local/samba/var/locks
make install
cp /tmp/smb.conf /usr/local/samba/lib/smb.conf
sh /etc/rc2.d/S78samba start
設定
- マニュアル&適当なWebpageか本を詠みましょう。
- デフォルトで /usr/local/samba/ 以下にインストールされます。
- ほとんどの設定はsmb.confで出来る。
 
設定例
設定方針
naigsa, madoka, hitomi で samba を動かすことにしました(NFS サーバ上で動く). 内部ネットユーザにのみサービスを提供します(hosts allow 行で設定)。設定内容は次の通りです.
[共有名]場所
- [ユーザ名] 各ユーザのホームディレクトリ(Read Only)
/u/****/ をリード可能 - [home_pc] 各ユーザのホームディレクトリの ~/pc というディレクトリ(Read & Write)
/u/****/pc をリードライト可能 - [ACM]
- [pc_archive] /home/pc (Read & Write) Windows 関係,Linux関係,WAKASHI(NT)関係
プリンタ設定
ソラリスマシンからの印刷設定を admintool を使って、あらかじめ行なって おくこと。
Printer Name | Server | Description
lp3 | junko | lp4210 at S-309
lp_ps3 | junko | lp4210 at S-309
lp3c | megumi | C2220 at S-309
lp4 | lp4 | lp4210 at N-417
lp_ps | lp4 | lp4210 at N-417
lp4c | lp4c | C2220 at N-417
設定ファイル
研究室(4階)のsmb.confです.
/usr/local/samba/lib に各種設定ファイルを置きます.
設定はsmb.confを直接見るか,testparamというコマンドで見ることができる.
- 印刷用のスプールファイルは、writable である必要がある。
- 「print command = /usr/bin/lp -d%p -s %s; rm %s」のように print command を設定する必要がある
;
; smb.conf 2002/01/31
;
[global]
workgroup = WAKASHI
interfaces = hme*
server string = Makinouchi Lab Samba
hosts allow = 192.168.0. 255.255.255. 127.
hosts deny = 0.0.0.0/0
# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
load printers = no
printing = sysv
printcap name = lpstat
# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
; guest account = nobody
log file = /usr/local/samba/var/log.%m
# Put a capping on the size of the log files (in Kb).
max log size = 50
socket options = TCP_NODELAY
invalid users = root
[homes]
comment = %U Home Directories (Read Only)
read only = yes
writable = no
browseable = no
public = no
create mask = 0644
directory mask = 0755
[home_pc]
comment = %U's ~/pc (Read/Write)
path= %H/pc
writable = yes
browseable = yes
public = no
create mask = 0644
directory mask = 0755
[pc_archive]
comment = pc archive (hitomi:/home/pc,Read/Write)
path = /home/pc
writable = yes
browseable = yes
public = no
create mask = 0644
directory mask = 0755
[ACM]
comment = ACM (kei:/home/db/ACM)
path = /home/db/ACM
read only = yes
writable = no
browseable = yes
public = yes
create mask = 0644
directory mask = 0755
[lp3]
comment = lp3 (Mono. Printer at S-309)
browseable = yes
available = yes
public = no
writable = no
printable = yes
printer name = lp3
path = /tmp
create mode = 0700
print command = /usr/bin/lp -d%p -s %s; rm %s
[lp3c]
comment = lp3c (Color Printer at S-309)
browseable = yes
available = yes
public = no
writable = no
printable = yes
printer name = lp3c
path = /tmp
create mode = 0700
print command = /usr/bin/lp -d%p -s %s; rm %s
[lp4]
comment = lp4 (Mono. Printer at N-417)
browseable = yes
available = yes
public = no
writable = no
printable = yes
printer name = lp4
path = /tmp
create mode = 0700
print command = /usr/bin/lp -d%p -s %s; rm %s
[lp4c]
comment = lp4c (Color Printer at N-417)
browseable = yes
available = yes
public = no
writable = no
printable = yes
printer name = lp4c
path = /tmp
create mode = 0700
print command = /usr/bin/lp -d%p -s %s; rm %s
[global]
/etc/rc2.d/S78samba
/etc/rc2.d/S78samba の設定例
#!/sbin/sh
smbspool=/var/spool/samba
pidfiledir=/usr/local/samba/var/locks
smbd=/usr/local/samba/bin/smbd
nmbd=/usr/local/samba/bin/nmbd
case "$1" in
'start')
if [ -f $smbd ]; then
if [ -d $smbspool ]; then
rm -f $smbspool/*
fi
echo ' Samba'
$smbd -D
$nmbd -D
fi
;;
'stop')
kill `cat $pidfiledir/smbd.pid`
kill `cat $pidfiledir/nmbd.pid`
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
exit 0