Linux要與windows做網芳式分享檔案,以smb(Server Message Block, Session Message Block)協定為主。Linux界的高手用逆向工程把微軟的NetBIOS解析出來變成SMB協定。
以下是SMB,NetBIOS及TCP/IP協定堆疊圖。
1.先查看自己的電腦中是否有Samba相關套件。
[root@andy ~]#rpm -qa | grep samba
system-config-samba-1.2.41-5.el5 samba-3.0.33-3.15.el5_4.1 --->Samba SMB伺服器 samba-client-3.0.33-3.15.el5_4.1 ---->Samba用戶端程式 samba-common-3.0.33-3.15.el5_4.1 --->Samba 伺服器與用戶端都需要的程式
在針對每個套件看看有哪機個檔案
[root@andy ~]#rpm -ql samba-3.0.33-3.15.el5_4.1 |tac
/usr/bin/tdbtool /usr/bin/tdbdump /usr/bin/tdbbackup /usr/bin/smbstatus /usr/bin/smbcontrol /usr/bin/mksmbpasswd.sh /etc/sysconfig/samba /etc/samba/smbusers /etc/rc.d/init.d/smb --->啟動服務的程式 /etc/pam.d/samba /etc/logrotate.d/samba /usr/sbin/smbd /usr/sbin/nmbd ~略~
[root@andy ~]#rpm -ql samba-client
/sbin/mount.cifs /sbin/umount.cifs /usr/bin/eventlogadm /usr/bin/findsmb /usr/bin/nmblookup /usr/bin/rpcclient /usr/bin/smbcacls /usr/bin/smbclient /usr/bin/smbget /usr/bin/smbprint /usr/bin/smbspool /usr/bin/smbtar /usr/bin/smbtree
[root@andy ~]#rpm -ql samba-common
/etc/rc.d/init.d/winbind /etc/samba /etc/samba/lmhosts /etc/samba/smb.conf --->主要設定檔
Share : 提供一般分享模式
[root@andy ~]# vi /etc/samba/smb.conf
—————– Network Related Options ————
workgroup = SUPERMAN (設定群組名稱) server string = Samba Server Version %v(主機簡易說明) netbios name = SUPER(netbios 主機名稱) security=share(不需要密碼即可分享資料)
———通常此設定選項都寫到最後一列————-
[super] ---->分享的名稱 path = /tmp/Ghost11/ --->分享的目錄位置 public = yes ---->是否讓所有可以登入的使用者看到這個項目 writable = yes ---->寫入權限 browseable = yes ---->是否要瀏覽分享的資料夾
———啟動服務Samba服務———————–
[root@andy ~]# /etc/init.d/smb start
正在啟動 SMB 服務: [ 確定 ] 正在啟動 NMB 服務: [ 確定 ]
—–測試 分享的模式—
user一般使用者模式(需要帳號及密碼登入)
[root@andy ~]# vi /etc/samba/smb.conf
—————– Network Related Options ————
workgroup = SUPERMAN (設定群組名稱) ----同上 server string = Samba Server Version %v(主機簡易說明) ---同上 netbios name = SUPER(netbios 主機名稱) -----同上 security=user(需要帳號及密碼即可分享資料) encrypt passwords = yes ---->需要密碼驗證 smb passwd file = /etc/samba/smbpasswd --->驗證的密碼寫入到這個檔
———分享的資料同上一個分享模式的設定————-
———登入帳號及密碼的設定————-
1.帳號為Linux主機的/etc/passwd的檔案中。
2.先檢查是否有這個檔案 /etc/samba/smbpasswd
i.若沒有此檔(/etc/samba/smbpasswd)
執行[root@andy ~]#cat /etc/passwd |mksmbpasswd.sh > /etc/samba/smbpasswd [root@andy ~]#pdbedit -i smbpasswd:/etc/samba/smbpasswd
ii.若有此檔案,就直接鍵入密碼 (實際實驗當中:若沒有/etc/samba/smbpasswd直接執行ii此步也是可以,只不過會有一些訊息)
[root@andy ~]# smbpasswd -a ali
New SMB password:
Retype new SMB password:
3.重新啟動服務
[root@andy ~]# /etc/init.d/smb restart
4.測試