[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 應用技術 > 其它 > 正文
Samba-2.2.0初探
本文出自: http://6bytes.com/meaculpa 作者:meaculpa (2001-05-31 09:04:00)

SAMBA Team2001年四月17日發布了Samba最新正式版2.2.0。增強的地方包括:

增強了兩種操作系統文件交互功能,當Unix和Windows共享某個文件的時候,可以保証數據的完整性; 
能夠為Windows 2000和Windows NT客戶機提供認証資源。這樣可以節省購買Microsoft 客戶接入許可証的費用; 
支持自動下載Windows 2000/NT打印機驅動程序,首次獨立Microsoft的代碼實現Windows NT點對點功能; 
將Windows 2000 / Windows NT和UNIX 的接入控制列表統一起來。允許Windows客戶機直接操作UNIX接入控制實體;  
允許UNIX 服務器使用Windows 2000/Windows NT 域控制器  
支持Microsoft分布式文件系統(Microsoft Distributed File System :MDFS)。 Samba 2.2.0 能夠在Microsoft 的網絡中扮演DFS 服務器的角色。 
共享安全設定  
同時該開發小組還發布了2.0.8版對先前的2.0.7版進行升級,這次的升級修正了老版本上用戶可以通過SHELL賬號破壞本地磁盤設備(如RAW設備)的安全漏洞。當然Samba 2.2.0已經包含了所有的安全補丁,如果不想升級到2.0.8就可以直接下載這個最新版了。既然這樣,那我們立馬就來試裝這個新東東。

首先從http://us1.samba.org/samba/ftp/samba-2.2.0.tar.gz得到源代碼包,放到/tmp目錄裡把它解開:(哦,我的系統是FreeBSD 4.3,也是最新的版本哦!)

bsd# cd /tmp ; tar zxvf samba-2.2.0.tar.gz
然進入源代碼子目錄進行自動配置過程:

bsd# cd /tmp/samba-2.2.0/source ; ./configure
如沒有什錯誤就可以開始編譯了:

bsd# make ; make install
完了以就會在系統的/usr/local/samba中創建以下目錄:

bsd# ls /usr/local/samba

bin  lib  man  private  swat  var
在試運行前需要完成兩件事,首先就是拷貝一份smb.conf,接著產生smbpasswd口令數據庫:

bsd# cp /tmp/samba-2.2.0/examples/smb.conf.default /usr/local/samba/lib/smb.conf
bsd# cat /etc/passwd | /usr/local/samba/bin/mksmbpasswd.sh > /usr/local/samba/private/smbpasswd
編輯smbpasswd文件從中刪除不必要的賬號以防止安全隱患,然用以下命令添加新samba用戶:

bsd# /usr/local/samba/bin/smbpasswd -a sambauser
好,我們現在就可以用這份缺省的配置文件進行試運行:

bsd# /usr/local/samba/bin/smbd -D ; /usr/local/samba/bin/nmbd -D
這時請查看/usr/local/samba/var/log.smbd文件有沒有出錯信息,運氣好的話開始測試連接:

bsd# /usr/local/samba/bin/smbclient //bsd/sambauser -U sambauser
added interface ip=192.168.0.2 bcast=192.168.0.255 nmask=255.255.255.0
added interface ip=192.168.1.2 bcast=192.168.1.255 nmask=255.255.255.0
Password:         #在這裡輸入該用戶的samba口令
Domain=[DOMAIN] OS=[Unix] Server=[Samba 2.2.0]
smb: \> 
哈哈,我們已經以sambauser的身份連接到他/她的主目錄了,以可以做的事請參考smbclient.1的man吧。

接下來就可以來試2.2分支的最新特性,我們以把它配置成windows 2000客戶機的域控制器為例。以下是實現必須的配置:

[global]
; 基本服務器設定
netbios name = bsd
workgroup = unixdomain

; 以域及本地主瀏覽器方式運作
os level = 64
preferred master = yes
domain master = yes
local master = yes

; 安全性設定
security = user

; 加密口令
encrypt passwords = yes

; 支持域登錄
domain logons = yes

; 存放用戶簡檔的目錄
logon path = \\%N\profiles\%u

; 指定用戶的主目錄及映射盤符
logon drive = H:
logon home = \\bsd\%u

; 為所有用戶指定通用登錄腳本並使用[netlogon]共享項的相對路徑
logon script = logon.cmd

; 域控制器必須的共享項
[netlogon]
path = /usr/local/samba/lib/netlogon
writeable = no
write list = ntadmin

; 存放用戶簡檔的共享項
[profiles]
path = /export/smb/ntprofile
writeable = yes
create mask = 0600
directory mask = 0700
接下來就需要為加入進來的客戶機建立它們的機器信任賬號了。有手工及自動兩種方法可以達到目的,如果用前者則必須為每一台客戶機分別建立,我們採用者以減輕系統管理負擔,不過只有root賬號可以做此項工作,所以需要在smbpasswd口令數據庫中為root建立賬號(smbpasswd -a root),為安全起見最好不要用系統root的口令。然在smb.conf中加入下面這一行:

add user script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %m$
用下面這個腳本(BSD風格)啟動samba服務器:

#!/bin/sh
smbspool=/usr/local/samba/var/spool
pidfiledir=/usr/local/samba/var/locks
smbd=/usr/local/samba/bin/smbd
nmbd=/usr/local/samba/bin/nmbd

# start
if [ "x$1" = "x" -o "x$1" = "xstart" ]; then
if [ -f $smbd ]; then
if [ -d $smbspool ]; then
rm -f $smbspool/*
fi
echo -n ' Samba'
$smbd -D
$nmbd -D
fi

# stop
elif [ "x$1" = "xstop" ]; then
kill `cat $pidfiledir/smbd.pid`
kill `cat $pidfiledir/nmbd.pid`
fi
然在windows 2000客戶機上以Administrator登錄,進入“控制面板”雙擊“系統”,選擇“網絡標識”書簽並點擊“屬性”,在“隸屬”項中選“域”,並輸入域名(unixdomain),按“確定”,在確認時輸入samba的root賬號及其相應口令(別用系統口令哦!)然重啟就可以換登錄進該域控制器了。

另外這裡還有一些系統性能及安全方面的建議,由我用的是FreeBSD系統,在內核配置文件中加入以下選項並重編譯內核:

options  SUIDDIR
maxusers 128
前者的作用是使文件服務器上所有用戶的主目錄都以suiddir選項裝載,這樣用戶產生的新文件同目錄具有相同的所有權。不過如果你讓用戶運行程序的話這就是個安全漏洞了,所以最好只限在文件服務器上使用此選項,當然這個選項可以解決很多頭痛問題,因為它支持很多文件服務器該有的調用,而用戶希望“我的目錄裡只有我的文件”。

而者的作用就是提高系統表格尺寸,以提升系統對高負載的支持能力,原因是用Samba作文件服務器在大量連接請求會產生大量進程及文件句柄數。128這個值在一般情況下應該夠了,請以實際經驗取值。
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
巧配samba實現WIN2000和Linux文件共享 (2001-12-23 08:30:00)
Samba的圖形化配置工具-SWAT (2001-10-01 07:00:00)
Samba的三種典型配置 (2001-09-30 13:05:00)
如何利用Samba實現Linux與Windows98的資源共享 (2001-09-30 09:05:00)
Samba的簡介 (2001-09-30 08:05:01)
Samba 和 Windows 的密碼處理認証方式 (2001-09-30 07:05:00)
RedHat6.2服務器配置方案大全--第三章 DHCP,第四章 Samba (2001-09-28 09:00:00)
中文man手冊:smbstatus - 報告當前samba的聯接狀態 (2001-09-22 13:05:00)
中文man手冊:make_smbcodepage - 為Samba創建代碼頁文件 (2001-09-21 08:00:00)
尋找Linux下的網絡鄰居(圖形工具:gnomba,Tk Samba,xSMBrowser,LinNeighborhood) (2001-08-24 09:00:00)

===更多相關===
 

★  樊強制作 歡迎分享  ★