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,如需轉載請自行聯系原作者