天天看點

SMB伺服器搭建

samba伺服器包括兩個服務程式

smbd

smbd服務程式為客戶機提供了伺服器中共享資源(目錄和檔案等)的通路

nmbd

nmbd服務程式提供了NETZBIOS主機名稱的解析,為windows網絡中域或者工作組内的主機進行主機名稱的解析。

RHEL中預設安裝了Samba相關的軟體包

samba-common 軟體包中提供了samba伺服器和客戶機中都必須使用的公共檔案

samba 軟體包中包括了samba伺服器程式的所有檔案

samba-client 軟體包中提供了samba客戶機的所有檔案

system-config-samba軟體包中提供了Red Hat公司專門為samba伺服器管理編寫的圖形界面的管理程式,該程式是redhat系統管理工具中的一部分。

samba伺服器的主配置檔案是smb.conf儲存在/etc/samba中。

檢視檔案可以這樣:

grep -v "^#" /etc/samba/smb.conf|grep -v "^;"

smb.conf檔案内容

[global] #針對整個samba伺服器生效

workgroup = MYGROUP #工作組名稱

server string = Samba Server Version %v #伺服器注釋

security = user #user 使用者級的安全級别,就是必須要使用者名密碼,share 表示使用者不許要賬戶及密碼即可登入samba伺服器,server 表似乎檢查賬戶及密碼的工作指定由另一台windows伺服器或samba伺服器負責,domain表示指定windows域控制伺服器來驗證使用者的賬戶及密碼

passdb backend = tdbsam

log file= /var/log/samba/%m.log #對通路情況的日志記錄 %m 用戶端主機的名稱

max log size = 50 #(kB)

load printers = yes

cups options = raw

[homes] #共享目錄不特指某個目錄,而是表示samba使用者的宿主目錄

comment = Home Directories #說明

browseable = no #不可浏覽,表示所有samba使用者的宿主目錄不能被看到,隻有登入使用者才能看到自己的宿主目錄共享,這樣設定可以加強samba伺服器的安全性

writable = yes #對登入後的使用者具有寫的權限

[printers]

comment = All Printers

path = /var/spool/samba

browseable = no

guest ok = no

writable = no

printable = yes

samba帳号管理

samba使用者帳号使用獨立的smbpasswd檔案儲存使用者的帳号和加密密碼資訊

samba伺服器中的使用者帳号應該具有與其同名的linux系統使用者帳号,因為samba使用者是使用同名的系統帳号身份通路linux資源)(檔案和目錄)的

samba使用者的密碼和同名系統使用者的密碼是獨立的,可以相同或不同,需要分别進行維護和更改

當samba使用者不許要登入linux系統時,同名的系統使用者帳号可不設定密碼

samba伺服器的使用者帳号

samba伺服器的使用者帳号檔案儲存在/etc/samba目錄中,檔案名稱是smbpasswd

初始狀态smbpasswd檔案不存在,在第一次使用smbpasswd指令建立smaba使用者時自動建立

smbpasswd檔案中同時儲存有使用者帳号和使用者密碼,是以該檔案隻對root使用者有讀寫權限

smbpasswd指令

smbpasswd指令用于維護samba伺服器的張華

添加帳号:

smbpasswd -a sambauser

禁用

smbpasswd -d sambauser

啟用

smbpasswd -e sambauser

删除

smbpasswd -x sambauser

公共共享目錄配置要求

在smb.conf添加名為[public]共享目錄

公共共享目錄的路徑是/home/public

任何samba的使用者都可一通路公共目錄并對目錄具有讀寫權限

任何使用者在公共目錄中都以linux中nobady系統使用者的身份出現,既在公共目錄中任何使用者建立的文集那都屬于nobady系統使用者

smb.conf添加配置内容:

[public] #共享名為public

path= /home/public #真正的共享目錄

public= yes #public設定為yes表示該共享目錄對所有的samba使用者可見

only guest = yes # 表示所有使用者在使用該共享目錄時的使用者身份都是guest 即Linux系統使用者nobody

writable = yes # 這是設定了可寫的權限,但是設定了不一定就可以寫了,還得看這個目錄的權限,

測試smb.conf檔案的内容

testparm指令是配置檔案測試工具,可以對smb.conf配置檔案的文法進行檢測,并顯示目前配置的清單

#testparm

啟動samba伺服器

service smb restart

smbclient

smbclient是samba伺服器的指令行方式的登入用戶端,使用的形式類似telnet和ftp指令

顯示指定samba伺服器中的共享資源清單

smbclient -L 192。168.0.2

以指定使用者身份登入到指定伺服器的指定共享目錄

smbclient //192.168.0.2/st02 -U st02

//192.168.0.2/st02 表示伺服器192.168.0.2中的共享目錄st02

-U st02 表示以samba使用者st02的身份進行登入

包依賴,是以先安裝以下包

[root@redhat1 Server]# rpm -ivh perl-Convert-ASN1-0.20-1.1.noarch.rpm

warning: perl-Convert-ASN1-0.20-1.1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:perl-Convert-ASN1 ########################################### [100%]

然後安裝:

[root@redhat1 Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm

warning: samba-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

1:samba ########################################### [100%]

[root@redhat1 Server]# rpm -ivh samba-client-3.0.33-3.14.el5.i386.rpm

warning: samba-client-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

1:samba-client ########################################### [100%]

[root@redhat1 Server]# rpm -ivh samba-common-3.0.33-3.14.el5.i386.rpm

warning: samba-common-3.0.33-3.14.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

package samba-common-3.0.33-3.14.el5.i386 is already installed

[root@redhat1 Server]#

包安裝完畢,

啟動服務:

[root@redhat1 Server]# service smb restart

關閉 SMB 服務: [失敗]

關閉 NMB 服務: [失敗]

啟動 SMB 服務: [确定]

啟動 NMB 服務: [确定]

[root@redhat1 Server]# chkconfig smb on

[root@redhat1 Server]# smbclient //192.168.0.7/TDDOWNLOAD -U staid

Password:

Domain=[NCIST-V3ZT22PKZ] OS=[Windows Server 2003 3790 Service Pack 2] Server=[Windows Server 2003 5.2]

smb: \>

smb: \> cd TDDOWNLOAD

cd \TDDOWNLOAD\: NT_STATUS_OBJECT_NAME_NOT_FOUND

smb: \> dir

. DR 0 Fri Jul 2 17:24:06 2010

.. DR 0 Fri Jul 2 17:24:06 2010

51CTO下載下傳-PIX模拟器中文教程by網絡刀客v1.0.pdf+.pdf A 789172 Thu Jul 1 10:18:04 2010

desktop.ini HS 164 Thu Jul 1 09:53:49 2010

dotnetfx3setup.exe A 52770576 Wed Mar 18 16:06:04 2009

dotnetfx3setup.zip A 52725300 Fri Jul 2 17:22:28 2010

FirefoxChinaEdition-latest.exe A 9386696 Thu Jul 1 10:45:17 2010

ravolpconline.exe A 82199664 Thu Jul 1 10:30:44 2010

wlsetup-all.exe A 139758928 Fri Jul 2 15:29:49 2010

38875 blocks of size 262144. 33820 blocks available

smbmount //192.168.0.7/TDDOWNLOAD /mnt/smbfile #此用法已經随着南方的大水一去不複返了

正确的用法是:

[root@redhat1 Server]# mount -t cifs -o username=staid,password=1234 //192.168.0.7/TDDOWNLOAD /mnt/smbfile

伺服器端指令:smbstatus

用來顯示目前主機中的samba伺服器的連結狀态資訊

顯示資訊包括伺服器的每個samba用戶端ip位址,主機名稱 登入使用者名 鎖定的檔案等

[root@redhat1 samba]# which smbpasswd

/usr/bin/smbpasswd

[root@redhat1 samba]# rpm -qf /usr/bin/smbpasswd

samba-common-3.0.33-3.14.el5

[root@redhat1 samba]#

首先建立系統使用者

[root@redhat1 samba]# useradd shasha

useradd:使用者 shasha 已存在

[root@redhat1 samba]# smbpasswd -a shasha

New SMB password:

Retype new SMB password:

Added user shasha.

沒有在/etc/samba/目錄中找到smbpasswd檔案

看一下我的smb.conf配置檔案:

[root@redhat1 /]# cat /etc/samba/smb.conf|egrep -v "^#|^;"

[global]

workgroup = WORKGROUP

server string = Samba Server Version %v

log file = /var/log/samba/%m.log

max log size = 50

security = user

[homes]

comment = Home Directories

writable = yes

[public]

comment = Public Stuff

path = /smbpublic #我建立了一個目錄/smbpublic 然後在這兒把他共享出來

public = yes

printable = no

write list = @shasha #shasha這個組的使用者都可以登入

[root@redhat1 /]#

這樣,我們在workgroup組内的任何一台計算機上通路smb伺服器,用shasha組中的賬戶登入,都可以登入到smb伺服器上的共享目錄中來

本文轉自guoli0813 51CTO部落格,原文連結:http://blog.51cto.com/guoli0813/356770,如需轉載請自行聯系原作者

繼續閱讀