實驗需求:1) 使用RPM包安裝samba服務
2) 實現匿名訪問,驗證可以讀寫文件、目錄
3) 實現指定用戶的訪問
4) 實現指定用戶的訪問,並為用戶賦予不同的權限
啟動LINUX系統,進行SAMBA服務器配置,並截圖。
1. 為linux服務器的網卡設置IP地址:192.168.x.1/2,設置完畢后進入命令終端,查看設定的IP是否生效,用命令:ifconfig eth0,如果沒有生效,重啟網絡服務,用命令:service network restart;虛擬機 XP系統IP地址設置為:192.168.x.2/24。(注:x為自己學號最后兩位)
2. 在/media目錄下新建目錄RHEL,把第二個光驅/dev/sr1掛載到該目錄(注:掛載前先把第二個虛擬光驅裝載ISO文件,並連接)
#mkdir /media/RHEL
#mount /dev/sr1 /media/RHEL
4.安裝Samba程序包
安裝前先用ls搜索Samba相關軟件包,命令提示:#ls /media/RHEL/Packages/samba*
命令提示:#rpm -ivh /media/RHEL/Packages/samba-3.6.9-164.el6.i686.rpm
5. 實現匿名訪問,驗證可以讀寫文件、目錄
1) 用vi命令編輯samba主配置文件
[root@localhostsamba]# vi /etc/samba/smb.conf #編輯主配置文件
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
; netbios name = MYSERVER
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.
log file = /var/log/samba/log.%m
max log size = 50
security = share
passdb backend = tdbsam
以上為[global]全局模式的配置內容,其他保持默認即可,我們關心的是如果要實現匿名訪問,只需要修改 security 使安全級別為share(默認的為user)
下面是對share共享目錄進行配置,在配置文件的末尾插入以下行
[share] #指定目錄的共享名稱
path= /opt/share #指定共享share這個目錄
public= yes #public設為yes允許匿名用戶訪問
browseable= yes #讓匿名用戶可以看到共享內容
writable= yes #設置可以有寫入的權限
create mask = 0644 #設置新建文件的權限,表示屬主具有讀寫權限,其他人都只有只讀權限(rw-r--r--)
directory mask = 0755 #設置新建目錄的權限,表示屬主具有讀寫執行權限,其他人沒有寫入權限(rwxr-xr-x)
2)新建共享目錄並啟動samba服務
[root@localhostsamba]# mkdir /opt/share #創建share共享目錄
[root@localhostsamba]# chmod 777 /opt/share #修改權限為777
[root@localhostsamba]# service smb start #啟動samba服務
3)測試之前,必須把防火牆和selinux關掉
[root@localhost samba]# service iptables stop #關掉防火牆
[root@localhost samba]# setenforce 0 #關掉selinux服務
6. 效果驗證:
1) 在客戶機XP系統上測試能否ping通服務器,進入CMD控制台,ping 服務器IP 192.168.x.1
2) 在【開始】菜單的運行框中輸入\\192.168.x.1,可以看到名為share的共享文件夾
3) 進入share文件夾,新建文件aa.txt和文件夾guest,在文件aa.txt里可以寫入任何內容,文件夾下也能夠再新建文件,和配置文件里的設置是一樣的,匿名訪問成功。
4) 切換到linux服務器,我們通過命令ls –l /opt/share查看共享文件夾下匿名用戶訪問時新建的文件,發現屬主和屬組都是nobody,新建的文件權限是644,文件夾的權限是755
nobody是一個系統賬號,匿名訪問新建的就會顯示為nobody
7. 實現指定用戶的訪問
1) 用vi命令samba主配置文件
[root@localhost 桌面]# vi /etc/samba/smb.conf #編輯主配置文件
因為是要指定用戶進行訪問了,所以[global]全局模式里面只需要修改security ,使默認安全級別為user(默認值)
security = user
下面是根據具體的共享目錄進行配置,在配置文件的末尾插入以下行,新建一個test 的目錄的共享配置,不讓他匿名訪問,只有指定用戶才能訪問
[test] #指定目錄的共享名稱
path= /opt/test #指定共享test目錄
browseable= yes #設置可以看到共享內容
writable= yes #設置可以有寫入的權限
create mask = 0644 #設置新建文件的權限,表示屬主具有讀寫權限,其他人都只有只讀權限(rw-r--r--)
directory mask = 0755 #設置新建文件夾的權限,表示屬主具有讀寫執行權限,其他人沒有寫入權限(rwxr-xr-x)
2) 系統當中的用戶當然也可以訪問共享目錄,但是我們這里希望用samba自己的賬戶來訪問,新建兩個用於samba的賬戶並設置他們的密碼,這樣他們可以作為samba用戶使用但是不能夠登陸系統
[root@localhost 桌面]# useradd lily #創建賬戶lily和john
[root@localhost 桌面]# useradd john
[root@localhost 桌面]# smbpasswd -a lily #設置賬戶為samba用戶並設置密碼
[root@localhost 桌面]# smbpasswd –a john
3)新建共享目錄並啟動samba服務
[root@localhost 桌面]# mkdir /opt/test #創建test共享目錄
[root@localhost 桌面]# chmod 777 /opt/test #修改權限為777
[root@localhost 桌面]# service smb start #啟 動samba服務
4)測試之前,必須把防火牆和selinux關掉
[root@localhost 桌面]# service iptables stop #關掉防火牆
[root@localhost 桌面]# setenforce 0 #關掉selinux服務
5). 效果驗證:
1) 在【開始】菜單的運行框中輸入\\192.168.X.1\test,跳出對話框,輸入lily的賬號和密碼
2) lily這個用戶可以登陸並且對test共享目錄可以進行讀寫操
3) 在共享目錄test里面新建了一個名為lily.txt的文件,回到服務器通過命令ls –l /opt/test查看這個文件的權限,該文件的創建者和屬組都是lily
4) 用另一用戶john登陸到共享文件夾測試
注:測試之前先要在客戶機上清除之前的連接否則會因為緩存而直接進入共享目錄
8.實現指定用戶的訪問,並為用戶賦予不同的權限
1)為了測試訪問的用戶的不同權限,在[test]配置中加入以下兩行
valid users =lily, john #允許這兩個用戶可以訪問
write list =john #只允許john這個用戶可以寫入
2) 效果驗證
a.重啟samba服務
[root@localhost 桌面]# service smb restart #重啟samba服務
b. 客戶機上net use * /d清除連接
c.以lily身份登陸訪問共享文件夾,測試寫入文件
我們發現,我們設置了只有john可以寫入,為什么用lily登陸進去的時候還是可以寫入文件呢?我們回到服務器上檢查配置文件
所以要使配置生效就必須刪除writable = yes這一行配置
[root@localhost 桌面]# service smb restart #重啟samba服務
d. 清除連接(net use * /d),還是以lily的身份登陸,發現創建文件的時候被拒絕
e. 退出lily,清除連接,再用john登陸,john寫入文件和文件夾成功,驗證權限成功。
9. 實現對特定的訪問地址進行限制
若要拒絕誰訪問,只需要在主配置文件的[test]中添加一行:hosts deny = 192.168.X. #192.168.X.表示192.168.X.0這個網段,讓這個網段的所以主機都不可以訪問
1)效果驗證
[root@localhost 桌面]# service smb restart #重啟服務
2)客戶機XP系統清除連接(net use * /d)
這次使用john這個賬號來訪問,可以訪問其他共享文件夾但是因為客戶機ip地址為192.168.X.2,其IP是192.168.X.0這個網段,在test共享文件夾拒絕訪問的網段里面,所以當打開test文件夾時提示了拒絕訪問
10.實驗總結:
1) samba服務在Linux的系統中實現了微軟的SMB/CIFS 網絡協議,在部署windows、Linux混合平台的企業環境時,能夠很好的解決不同系統之間的文件互訪問題,使文件共享變得更加容易,是非常強大的功能。
2) samba服務提供了幾種很實用的訪問共享權限,也提供了服務器客戶端的訪問控制,在修改配置文件時一定要注意各個權限的配置是否沖突或者遺漏,平時可多做權限方面的測試。