我們公司的 server 前幾天快爆了, 於是我就加了一顆硬碟上去. 由於排線有點小問題, 拆裝硬碟之後, 大家密集使用的 server, 突然就變得不能開機了. 雖然 server 上沒有甚麼重要的資料, 但是我們工讀生的 script 都在上面, 萬一她那邊不能 release code 了, 誰都幫不上忙. 我們緊張了一陣子, 還好把排線換掉之後, 每一顆硬碟的內容都在.
電腦不會動, 當然就是重灌囉! 不幸的是, 我們的 Fedora 版本太舊了, 安裝上去之後, telnet, samba, nfs 統統不會動了, 在本機上選 upgrade, service 也統統都沒反應. 因此我把手動安裝的 samba 的步驟稍微整理一下, 以備不時之需. 其實我覺得更應該記下來的是, 我們同事 hack 的方法, 竟然都不用啟動 smb 耶, 而是依序執行某 3 隻程式也行. 我們先講正統的做法吧!
1. 檢查 samba 的 package 在不在?
rpm -qa samba
沒看到印東西, 那麼 /etc/init.d 下面應該沒有smb 這隻程式.
2. 安裝 yam -y install samba
接者 samba 就被安裝好了, 但是還沒有啟動.
3. 加 user, vi /etc/samba/smb.conf
檔案的上半部有一些 global rule, 開得鬆一點, 底下的目錄就隨便都可以進得去.
4. 測試 testparm
如果有問題會 complain.
5. 加 user, smbpasswd -a username
這個程式會要求輸入 password, 並且再 confirm 一次
值得留意的地方是, smbpasswd 是一個執行檔, 但是 /etc/samba/smbpasswd 底下真的有一個同名的檔案是放 password 的實體位置.
6. 可以省略的部分
6.0 其實連 5 都可以省略, 假如大家開公用目錄來用, 就不要分那麼細了.
6.1 防火牆設置, vi /etc/sysconfig/iptables
6.2 重新啟動 iptable, /etc/rc.d/init.d/iptables restart
6.3 將 samba 設為自動啟動, chkconfig smb on
6.4 確認自動啟動的狀態, chkconfig –list smb
7. 啟動 samba server, /etc/init.d/smb start
系統會印出
starting smb service: [OK]
starting nmb service: [OK]
8. 若不按照上面 7 的步驟, 硬是執行 smbd, nmbd, winbinbd 也是有同樣的效果. 而且不用 smb restart 也可以對 smb.conf 立刻生效喔! 這就是我們同事的最精簡 hack 版.
若慎重一點的話, 要按照下面的步驟.
以下抄襲自:由 jengyic 發表於 週六 6月 03, 2006 5:22 pm,
網址為: http://www.daemon-land.idv.tw/phpBB3/viewtopic.php?f=18&t=143
安裝 samba
1.cd /usr/ports/net/samba3
make install clean
options for samba
不修改預設值,僅多勾選 AD Support 選項。
2.cp /usr/local/etc/smb.conf.default /usr/local/etc/smb.conf
3.開機時啟動
(1)察看 samba.sh 內容,寫入 samba_enable="YES"
(2)寫入
smbd、nmbd、winbindd
smbd_enable="YES"
smbd_flags="-D"
nmbd_enable="YES"
nmbd_flags="-D"
winbindd_Enable="YES"
winbindd_flags=""
inetd_enable="YES"
4.使用 swat 管理
vi /etc/inetd.conf
將 swat 敘述前的 # 符號刪除,重新啟動 inetd
/etc/rc.d/inetd restart
開啟瀏覽器,輸入 http://FQDN:901
註1:
inetd.conf
# Enable the following two entries to enable samba startup from inetd
# (from the Samba documentation). Enable the third entry to enable the swat
# samba configuration tool.
#
#netbios-ssn stream tcp nowait root /usr/local/sbin/smbd smbd
#netbios-ns dgram udp wait root /usr/local/sbin/nmbd nmbd
#swat stream tcp nowait/400 root /usr/local/sbin/swat swat
前兩行表示如果要在開機的時候,自 inetd 啟動 samba ,需要將 netbios* 前的 # 符號刪除;如果要使用第三方 samba 設定工具(指的是 swat ),就需要將 swat 前的 # 符號刪除。
但是,發現系統主機前會不斷出現訊息r
….inetd[1228]: netbios-ssn/tcp: bind: Address already in use
….inetd[1228]: netbios-ns/udp: bind: Address already in use
最後,將 /etc/inetd.conf 中的 netbios* 前的 # 符號填上,就不再出現;猜測可能是因為先前寫入 /etc/rc.conf 檔案中的 smbd、nmbd 兩者已經在開機的過程中啟動,而後 inetd 要再啟動 smbd、nmbd 時,便出現已使用的訊息。
註2:
會了能夠在網路上看見中文檔案名稱的分享資料夾,需要在 smb.cond 檔案中加入 unix charset = big5 (發現僅在 xp 中見到中文僅需修改 big5 即可,但在 98 會呈現空白,需再添加 dos charset = 0xb9 ,由 CP850 修改為 0xb9 ,方可辨識中文)(亦可在 swat 中修改);而安全性設定則設為 user 即可。
註3:samba 的使用者帳號必須是存在系統上的帳號。