用實驗快速學習Samba
前言:在windows和linux的混合網絡中,samba還是有很大用處的,本文用實驗的方法快
速學習Samba。
[實驗項目]
①在linux上建立Samba服務器,用類似FTP的客戶端smbclient訪問。
②在linux上建立security=user的Samba服務器,用win2000的客戶端訪問。
③在linux上建立security=share的samba服務器,用win2000的客戶端訪問。
④在linux上掛載samba共享。
實驗一:在linux上建立Samba服務器,用類似FTP的客戶端smbclient訪問。
[實驗要求]
1.兩臺RH8.0的機器可以互相ping通。
2.機器1的IP:192.168.0.1
3.機器2的IP:192.168.0.2
[實驗步驟]
1.關掉兩臺機的防火墻。
#service iptables stop
#chkconfig iptables off
2.在兩臺機上安裝軟件包。
檢查samba,samba-common,samba-client包是否已安裝。
# rpm -q samba
# rpm -q samba-common
# rpm -q samba-client
根據結果,在安裝光盤里找到沒有安裝的軟件包,開始安裝。
# rpm -ivh samba*.rpm
3.在機器1開啟smb服務,并查看共享了什么內容。
# service smb start
# smbclient -L 192.168.0.1 -N
4.在機器1添加新用戶。
# useradd user1
# passwd user1
密碼:user1
# touch /home/user1/iAmUser1
5.在機器1創建smb帳戶文件文件:/etc/samba/smbpasswd
# touch /etc/samba/smbpasswd
# smbpasswd -a user1
密碼:user1
6.在機器1備份原配置文件:/etc/samba/smb.conf
# mv smb.conf smb.conf.BAK
7.在機器1新建配置文件:/etc/samba/smb.conf
# vi /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server
hosts allow = 192.168.0/24
encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
security = user
[homes]
comment = %u 's home
browsable = no
public = no
writable = yes
create mode = 0664
directory mode = 0775
--------------------------------------------------------------------
如果你對上述文件熟悉,跳過這段。
[global] [homes] 的[]表示段落,global表示全局,homes表示用戶目錄共享。
這兩個都是特殊的段落。
workgroup 類似windows的工作組。
server string 希望在客戶端顯示出此服務器的注釋,可省。
host allow 指出共享的網段,可省。
encrypt passwords 指出密文密碼傳輸。
smb passwd file 指出密文密碼和帳戶存放點。
security 服務方式,有四種:user,share,domain,server,必不可少。
comment 注釋共享目錄的屬性。
browsable 是否可瀏覽。
public 公共共享
writable 是否可寫
create mode ,directory mode 指出寫的權限。
--------------------------------------------------------------------
8.在機器1用testparm 檢查配置文件是否正確。
# testparm /etc/samba/smb.conf 192.168.0.2
# testparm /etc/samba/smb.conf 192.168.1.2
注意:1) 結果報告配置有錯誤嗎?有,仔細檢查配置文件哪里錯了。
2) 仔細看上面兩個命令的結果有何不同?為什么?
9.在機器1重啟smb服務。
# service smb restart
10.在機器2上看機器1的samba共享了什么?
# smbclient -L 192.168.0.1 -N
11.在機器2訪問機器1的samba服務。
# smbclient //192.68.0.1/homes -U user1%user1
12.在機器2上成功訪問后,用help查看命令。
smb: \>help
注意:1) 用ls 看到文件iAmUser1嗎?
2) 比較和FTP的命令有何不同。
實驗二:在linux上建立security=user的Samba服務器,用win2000的客戶端訪問。
[實驗要求]
1.一臺RH8.0機,一臺Win2k機,互相能ping通。
2.RH8.0機,IP:192.168.0.1
3.Win2k機,IP:192.168.0.2
[實驗步驟]
1.在實驗一的基礎上,修改/etc/samba/smb.conf
修改[global]段中:
workgroup = WORKGROUP1
----------------------------------------------------------------------
如果你對上述修改熟悉,跳過這段。
workgroup = WORKGROUP1為使linux和windows機在同一個工作組。
----------------------------------------------------------------------
注意:修改了smb.conf,必須運行:service smb restart
2.修改Win2k的工作組,為WORKGROUP1,若為域控制器,必須降為普通工作組,用
Administrator重啟登錄。
修改方法:“我的電腦”|“屬性”|“網絡標識”|“屬性”
3.在win2k機上,“網絡鄰居”|“整個網絡”|“全部內容”|“microsoft windows 網絡”
| “Workgroup1”,看到RH系統的機器了嗎?
4.輸入用戶名user1,密碼user1進入,可以新建,刪除文件嗎?
實驗三:在linux上建立security=share的samba服務器,用win2000的客戶端訪問。
[實驗要求]
1.一臺RH8.0機,一臺Win2k機,互相能ping通。
2.RH8.0機,IP:192.168.0.1
3.Win2k機,IP:192.168.0.2
[實驗步驟]
1.在實驗二的基礎上,修改/etc/samba/smb.conf
追加下面內容:
[public]
comment = public
path = /mnt
browsable = yes
public =yes
修改[global]段中:
security = share
----------------------------------------------------------------------
如果你對上述修改熟悉,跳過這段。
[public]定義了另一段,也可以為其他名稱。
path指出共享的目錄。
security采用share。
----------------------------------------------------------------------
注意:修改了smb.conf,必須運行:service smb restart
2.在win2k機上,用Administrator登錄,“網絡鄰居”|“整個網絡”|“全部內容”|
“microsoft windows 網絡”| “Workgroup1”,看到RH系統的機器了嗎?
3.不用密碼就可以進入了,是嗎?你看到幾個共享目錄?可以寫入嗎?
4.在win2k機上新建一個帳戶:user1,密碼:user1。
5.在win2k機上注銷,切換用戶user1。
6.在win2k機上,“網絡鄰居”|“整個網絡”|“全部內容”|“microsoft windows 網絡”
| “Workgroup1”,看到RH系統的機器了嗎?
7.不用密碼就可以進入了,是嗎?你看到幾個共享目錄?可以寫入嗎?
注意:1) 當你模仿[homes]段修改了[public]段的writable,create mode ,directory mode
后,可以寫入嗎?
2) 你修改了RH8.0機的/mnt/讀寫權限為drwxrwxrwx時,情況怎么樣呢?
實驗四:在linux上掛載samba共享。
[實驗要求]
1.一臺RH8.0機,一臺Win2k機,互相能ping通。
2.RH8.0機,IP:192.168.0.1
3.Win2k機,IP:192.168.0.2
[實驗步驟]
1.在win2k機上,共享C:\
2.在RH8.0機上運行:
# smbclient //192.168.0.2/C -U win2k的當前登陸用戶名%密碼
注意:能登陸嗎?
3.掛載共享盤:
# mount -t smbfs -o username=win2k的當前登陸名%密碼
//192.168.0.2/C /mnt/cdrom
注意:1)“username=win2k的當前登陸名%密碼” 之間不要有空格。
2) 也可用:# smbmount //192.168.0.2/C /mnt/cdrom -o username=
username=win2k的當前登陸名%密碼
3) 也可用:# smbmount //192.168.0.2/C /mnt/cdrom -U
win2k的當前登陸用戶名
接著輸入密碼便可。
4) 實際,兩臺都是Linux系統,一臺作samba服務器,另一臺作客戶機。如
實驗一的情況下,在機器2上:
# mount -t smbfs -o username=user1%user1
//192.168.0.1/homes /mnt/cdrom
也可實現共享,不過沒有必要,linux之間,可以用nfs實現共享,而且速度比
Samba快。
[實驗小結]
本文只是簡單快速的學習Sabma,如果想深入了解,需要結合manpage與原
/etc/samba/smb.conf(已備份為smb.conf.BAK)仔細研究,另外,/usr/share/doc/samba
提供了專業文檔可以學習。不過,通過本文的學習,已基本滿足普通的工作需要。至于
security為domain和server形式,我也沒有研究,所以,沒有涉及。