RPMでインストールしたばかりのSambaを動かしてみる

スポンサーリンク

「LPI-302 Mixed Environment」(LPIC302)試験の学習。 
Linux教科書 LPIC レベル3 」をベースに進める。

学習進捗状況は、以下のエントリを参照。
LPIC302 学習進捗状況: ほぼニートの資格取得日記☆

まだまだ勉強中の身なので、記事内容の正確性については保証しかねる。

——————————————————

前回は、yumやrpmコマンドを使って、SambaをRPMパッケージからインストールした。

今回はSambaを起動してみる。
そして、WindowsクライアントからSambaサーバーへアクセスし、
ファイル共有機能を試してみようと思う。。
ただし、Sambaは何の設定も行わない。
インストールしたままのデフォルト状態で起動してみる。

さて、まずは、Sambaがインストールされていることを確認。

# rpm -qa | grep samba

samba-3.0.33-3.29.el5_6.2
samba-common-3.0.33-3.29.el5_6.2
samba-client-3.0.33-3.29.el5_6.2
samba-swat-3.0.33-3.29.el5_6.2

Samaba 3.0系列がインストールされていることを確認した。
あとは、Samabaサーバーのプロセスを稼動させば、立派な(?)Sambaサーバーの出来上がり。。

さて、Sambaを起動させてみよう。
Samba用の起動スクリプト(/etc/init.d/smb)が用意されているので、これを使う。

起動前に、Sambaがすでに動いてしまっていないか確認。

# ps aux | egrep "smbd|nmbd" | grep -v grep
#

何も表示されないので、Samabaは動いていない。
また、以下のコマンドからでも確認できる

# /etc/init.d/smb status
smbd は停止しています
nmbd は停止しています

で、Sambaを起動させる。

# /etc/init.d/smb start
SMB サービスを起動中:                                      [  OK  ]
NMB サービスを起動中:                                      [  OK  ]

一応プロセスの状態を確信し、本当に稼動しているか見てみる。

# ps aux | egrep "smbd|nmbd" | grep -v gre
root      4842  0.0  0.4  15640  2356 ?        Ss   10:32   0:00 smbd -D
root      4845  0.0  0.2  15640  1200 ?        S    10:32   0:00 smbd -D
root      4846  0.0  0.2  10448  1260 ?        Ss   10:32   0:00 nmbd -D

または、以下のコマンドからでもプロセスの状態を確認できる。

# /etc/init.d/smb status
smbd (pid  4842) を実行中…
nmbd (pid  4846) を実行中…

さて、Sambaサーバーを構成するプロセスには、以下の3つがあるようだ。

  • snbd — ファイル共有をはじめとするSambaサーバーの大半の機能を担う
  • nmbd — NetBIOSでの名前解決やWINSサーバーとしての機能、またブラウジング機能を担う
  • winbind — Linuxアカウントの認証をActive Directoryへ統合するWinbind機能を担う

ここでは、Winbind機能は利用しないので、Winbindは無し。
smbd、nmbdの2つのプロセスが立ち上がっているのが確認できた。

ついでなので、起動スクリプト(/etc/init.d/smb)の中身もみておこう…。

[root@centos ~]# cat /etc/init.d/smb
#!/bin/sh
#
# chkconfig: – 91 35
# description: Starts and stops the Samba smbd and nmbd daemons \
#              used to provide SMB network services.
#
# pidfile: /var/run/samba/smbd.pid
# pidfile: /var/run/samba/nmbd.pid
# config:  /etc/samba/smb.conf
# Source function library.
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 1
fi
# Avoid using root’s TMPDIR
unset TMPDIR
# Source networking configuration.
. /etc/sysconfig/network
if [ -f /etc/sysconfig/samba ]; then
  . /etc/sysconfig/samba
fi
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1
# Check that smb.conf exists.
[ -f /etc/samba/smb.conf ] || exit 6
RETVAL=0
start() {
       KIND="SMB"
       echo -n $"Starting $KIND services: "
daemon smbd $SMBDOPTIONS
       RETVAL=$?
       echo
       KIND="NMB"
       echo -n $"Starting $KIND services: "
daemon nmbd $NMBDOPTIONS
       RETVAL2=$?
       echo
       [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/smb || \
          RETVAL=1
       return $RETVAL
}
stop() {
       KIND="SMB"
       echo -n $"Shutting down $KIND services: "
killproc smbd
       RETVAL=$?
       echo
       KIND="NMB"
       echo -n $"Shutting down $KIND services: "
killproc nmbd
       RETVAL2=$?
       [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/smb
       echo ""
       return $RETVAL
}
restart() {
       stop
       start
}
reload() {
       echo -n $"Reloading smb.conf file: "
killproc smbd -HUP
       RETVAL=$?
       echo
       return $RETVAL
}
rhstatus() {
status smbd
       RETVAL=$?
status nmbd
       RETVAL2=$?
       if [ $RETVAL -ne 0 ] ; then
               return $RETVAL
       fi
       if [ $RETVAL2 -ne 0 ] ; then
               return $RETVAL2
       fi
}
# Allow status as non-root.
if [ "$1" = status ]; then
      rhstatus
      exit $?
fi
# Check that we can write to it… so non-root users stop here
[ -w /etc/samba/smb.conf ] || exit 4
case "$1" in
start)
       start
       ;;
stop)
       stop
       ;;
restart)
       restart
       ;;
reload)
       reload
       ;;
status)
       rhstatus
       ;;
condrestart)
       [ -f /var/lock/subsys/smb ] && restart || :
       ;;
*)
       echo $"Usage: $0 {start|stop|restart|reload|status|condrestart}"
       exit 2
esac
exit $?

うーん、半角英数字がいっぱい並んでいて、何が何だか分からないが…。

start()関数で、
daemon smbd $SMBDOPTIONS
daemon nmbd $NMBDOPTIONS
の記述がある。
これで、smbdとnmbdプロセスを起動しているようだ…。

で、最後の方のcase文で、引数にstartを指定するとstart()関数が呼び出される、と…。
なので、smbdとnmbdが起動する…。

また、stop()関数でも
killproc smbd
       killproc nmbd
と、いかにもプロセスを殺しそうな行がある。

Ssambaをソースコードからインストールした場合などで、
起動スクリプトを用意したいときは、このあたりを書き換えればいいのかもしれない…。

さて、
Sambaのプロセスを稼動させ、立派な(?)Sambaサーバーを作ったので、
WindowsクライアントからSambaのファイルサーバーとしての機能が使えるか試してみよう。

Windowsクライアントは、「Windows 7 Enterprise Edition 32bit版」。
(ちなみに、Samba 3.5系列であれば、
WIndows VistaやWindows 2008 Server以降でサポートされた
SMB2プロトコルが暫定的にサポートされている)

Windowsマシンへログオンし、
[スタート]-[ファイル名を指定して実行]-[\\192.168.0.33(SambaサーバーのIPアドレス)]を入力-[Enter]キー
(Windows 7の場合は、[ファイル名を指定して実行]ではなく、[プログラムとファイルの検索]欄になる…)

すると、ユーザー名/パスワードを要求する認証画面が出てきた。

どうやら、Sambaサーバーへは接続できている感じだ…。よかった…。
しかし、この認証を通るSamba用アカウントなんて作っていない…。
Sambaサーバーでファイル共有機能を利用するために、Samba用アカウントを作るとしよう…。

次回へ…。

スポンサーリンク

 

SNSシェアボタン

  • このエントリーをはてなブックマークに追加