【博文推薦】RHEL6.5下部署samba企業(yè)級(jí)文件服務(wù)器實(shí)戰(zhàn)
本博文出自51CTO博客Y.weisheng博主,有任何問(wèn)題請(qǐng)進(jìn)入博主頁(yè)面互動(dòng)討論! 博文地址:http://yuan2.blog.51cto.com/446689/1588085 |
1. 實(shí)驗(yàn)需求:
1) 使用RPM包安裝samba服務(wù)
2) 實(shí)現(xiàn)匿名訪問(wèn),驗(yàn)證可以讀寫(xiě)文件、目錄
3) 實(shí)現(xiàn)指定用戶(hù)的訪問(wèn)
4) 實(shí)現(xiàn)指定用戶(hù)的訪問(wèn),并為用戶(hù)賦予不同的權(quán)限
5) 實(shí)現(xiàn)用戶(hù)的別名訪問(wèn),并測(cè)試權(quán)限
6) 實(shí)現(xiàn)對(duì)特定的訪問(wèn)地址進(jìn)行限制
7) 實(shí)現(xiàn)訪問(wèn)windows系統(tǒng)中的共享資源
2. 實(shí)驗(yàn)環(huán)境:
Linux服務(wù)器系統(tǒng)版本:Red Hat Enterprise Linux 6.5 IP:192.168.10.3
Windows客戶(hù)機(jī)系統(tǒng)版本:Windows 7 Ultimate x64 IP:192.168.10.2
Samba軟件版本:samba-3.6.9
3. 實(shí)驗(yàn)步驟:
基本安裝操作
A. 掛載系統(tǒng)光盤(pán)并安裝samba
要安裝samba服務(wù)需要從rpm軟件包安裝,rpm安裝包一般放在系統(tǒng)光盤(pán)中的Packages目錄中,我們首先用mount命令看一下是否掛載了光盤(pán)到系統(tǒng)中
如果沒(méi)有掛載,將光盤(pán)手動(dòng)掛載到系統(tǒng)的mnt目錄下
查看光盤(pán)已經(jīng)被掛載
在Packages目錄下找到samba服務(wù)的軟件包并安裝
B. 查看samba配置文件
安裝好samba之后我們要想服務(wù)器能夠按照我們的意愿工作就要去修改配置文件了
可以用rpm -qc來(lái)查看一個(gè)已經(jīng)安裝軟件的文檔安裝位置
發(fā)現(xiàn)并沒(méi)有顯示conf配置文件,但根據(jù)經(jīng)驗(yàn)一般conf配置文件都會(huì)放在/etc目錄下,查找/etc/samba/目錄,找到主配置文件smb.conf
[root@localhost~]# more /etc/samba/smb.conf 查看文件里面的內(nèi)容,發(fā)現(xiàn)內(nèi)容很長(zhǎng),并且有很多#號(hào)的注釋
我們?yōu)榱丝雌饋?lái)方便,可以過(guò)濾掉所有帶#號(hào)的行,并把過(guò)濾過(guò)后的文件內(nèi)容保存為另外一個(gè)文件smb.con:
- [root@localhost ~]# grep -v"#" /etc/samba/smb.conf > /etc/samba/smb.con
查看發(fā)現(xiàn)已經(jīng)有了smb.con文件,建議原來(lái)以.conf結(jié)尾的配置文件也不要?jiǎng)h除,可以給它改個(gè)名字做個(gè)備份,以防將來(lái)配置出錯(cuò)還可以把它繼續(xù)拿來(lái)修改
- [root@localhost ~]# cd /etc/samba #切換到samba目錄
- [root@localhost samba]# mv smb.confsmb.conf.back #將conf文件備份
- [root@localhost samba]# mv smb.consmb.conf #將smb.con改名為smb.conf
實(shí)現(xiàn)匿名訪問(wèn),驗(yàn)證可以讀寫(xiě)文件、目錄
- [root@localhostsamba]# vi smb.conf #打開(kāi)主配置文件
- [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]全局模式的配置內(nèi)容,其他保持默認(rèn)即可,我們關(guān)心的是如果要實(shí)現(xiàn)匿名訪問(wèn),只需要修改 security 使安全級(jí)別為share(默認(rèn)的為user)
下面是對(duì)share共享目錄進(jìn)行配置,在配置文件的末尾插入以下行
- [share] #指定目錄的共享名稱(chēng)
- path= /opt/share #指定共享share這個(gè)目錄
- public= yes #public=guest ok,設(shè)為yes允許匿名用戶(hù)訪問(wèn)
- browseable= yes #讓匿名用戶(hù)可以看到共享內(nèi)容
- writable= yes #設(shè)置可以有寫(xiě)入的權(quán)限
- createmask = 0644 #設(shè)置新建文件的權(quán)限,表示屬主具有讀寫(xiě)權(quán)限,其他人都只有只讀權(quán)限(rw-r--r--)
- directory mask = 0755 #設(shè)置新建目錄的權(quán)限,表示屬主具有讀寫(xiě)執(zhí)行權(quán)限,其他人沒(méi)有寫(xiě)入權(quán)限(rwxr-xr-x)
A. 修改后的腳本:
- [root@localhostsamba]# mkdir /opt/share #創(chuàng)建share共享目錄
- [root@localhostsamba]# chmod 777 /opt/share #修改權(quán)限為777
- [root@localhostsamba]# service smb start #啟動(dòng)samba服務(wù)
- [root@localhostsamba]# netstat -ant #查看網(wǎng)絡(luò)端口狀態(tài)
139和445兩個(gè)samba服務(wù)的端口正在被監(jiān)聽(tīng),samba服務(wù)是正常的,下面就可以去客戶(hù)機(jī)上測(cè)試了。測(cè)試之前,必須把防火墻和selinux關(guān)掉
- [root@localhost samba]# service iptables stop
- iptables:將鏈設(shè)置為政策ACCEPT:filter [確定]
- iptables:清除防火墻規(guī)則: [確定]
- iptables:正在卸載模塊: [確定]
- [root@localhost samba]# setenforce 0
B. 效果驗(yàn)證:
在客戶(hù)機(jī)上測(cè)試能否ping通服務(wù)器
在【開(kāi)始】菜單的搜索框中輸入\\192.168.10.3,可以看到名為share的共享文件夾
進(jìn)入文件夾,可以新建文件和文件夾,文件里可以寫(xiě)入任何內(nèi)容,文件夾下也能夠再新建文件,和配置文件里的設(shè)置是一樣的,匿名訪問(wèn)成功。
回到服務(wù)器,我們查看共享文件夾下匿名用戶(hù)訪問(wèn)時(shí)新建的文件,發(fā)現(xiàn)屬主和屬組都是nobody,新建的文件權(quán)限是644,文件夾的權(quán)限是755
nobody是一個(gè)系統(tǒng)賬號(hào),匿名訪問(wèn)新建的就會(huì)顯示為nobody
#p#
實(shí)現(xiàn)指定用戶(hù)的訪問(wèn)
因?yàn)槭且付ㄓ脩?hù)進(jìn)行訪問(wèn)了,所以[global]全局模式里面只需要修改 security
使默認(rèn)安全級(jí)別為user
security = user
下面是根據(jù)具體的共享目錄進(jìn)行配置,在配置文件的末尾插入以下行,新建一個(gè)test 的目錄的共享配置,不讓他匿名訪問(wèn),只有指定用戶(hù)才能訪問(wèn)
- [test] #指定目錄的共享名稱(chēng)
- path= /opt/test #指定共享test目錄
- browseable= yes #設(shè)置可以看到共享內(nèi)容
- writable= yes #設(shè)置可以有寫(xiě)入的權(quán)限
- createmask = 0644 #設(shè)置新建文件的權(quán)限,表示屬主具有讀寫(xiě)權(quán)限,其他人都只有只讀權(quán)限(rw-r--r--)
- directory mask = 0755 #設(shè)置新建文件夾的權(quán)限,表示屬主具有讀寫(xiě)執(zhí)行權(quán)限,其他人沒(méi)有寫(xiě)入權(quán)限(rwxr-xr-x)
系統(tǒng)當(dāng)中的用戶(hù)當(dāng)然也可以訪問(wèn)共享目錄,但是我們這里希望用samba自己的賬戶(hù)來(lái)訪問(wèn),新建兩個(gè)用于samba的賬戶(hù)不設(shè)置他們的密碼,這樣他們可以作為samba用戶(hù)使用但是不能夠登陸系統(tǒng)
- [root@localhost samba]# useradd jery #創(chuàng)建賬戶(hù)jery和jene
- [root@localhost samba]# useradd jene
- [root@localhost samba]# smbpasswd -ajery #設(shè)置賬戶(hù)為samba用戶(hù)并設(shè)置密碼
- New SMB password:
- Retype new SMB password:
- Added user jery.
- [root@localhost samba]# smbpasswd -ajene
- New SMB password:
- Retype new SMB password:
- Added user jene.
- [root@localhost samba]#
- [root@localhost samba]# pdbedit -L #查看新建的samba賬戶(hù)信息
- jery:500:
- jene:501:
- [root@localhost samba]# mkdir /opt/test #創(chuàng)建共享目錄test
- [root@localhost samba]# chmod 777/opt/test #修改權(quán)限為777
- [root@localhost samba]# service smbrestart #重啟samba服務(wù),這里也可以使用reload,但是reload是重新加載配置并不會(huì)和客戶(hù)機(jī)徹底斷開(kāi)連接,這里為了測(cè)試用了restart
- 關(guān)閉 SMB 服務(wù): [確定]
- 啟動(dòng) SMB 服務(wù): [確定]
A. 修改后的腳本
B. 效果驗(yàn)證
測(cè)試之前先要在客戶(hù)機(jī)上清除之前的連接否則會(huì)因?yàn)榫彺娑苯舆M(jìn)入共享目錄
在【開(kāi)始】菜單的搜索框中輸入\\192.168.10.3\test,跳出對(duì)話(huà)框,輸入jery的賬號(hào)和密碼
jery這個(gè)用戶(hù)可以登陸并且對(duì)test共享目錄可以進(jìn)行讀寫(xiě)操作
在共享目錄里面新建了一個(gè)名為jery的文件,回到服務(wù)器查看這個(gè)文件的權(quán)限,顯示為jery
#p#
實(shí)現(xiàn)指定用戶(hù)的訪問(wèn),并為用戶(hù)賦予不同的權(quán)限
接著為了測(cè)試訪問(wèn)的用戶(hù)的不同權(quán)限,在[test]配置中加入以下兩行
- valid users =jery, jene #允許這兩個(gè)用戶(hù)可以訪問(wèn)
- write list =jene #只允許jene這個(gè)用戶(hù)可以寫(xiě)入
A. 修改后的腳本
B. 效果驗(yàn)證
[root@localhostsamba]# service smb restart #重啟服務(wù)
關(guān)閉SMB 服務(wù): [確定]
啟動(dòng)SMB 服務(wù): [確定]
客戶(hù)機(jī)上net use * /d清除連接
這次以jery登陸,測(cè)試寫(xiě)入文件
這個(gè)時(shí)候明明我們?cè)O(shè)置了只有jene可以寫(xiě)入為什么用jery登陸進(jìn)去的時(shí)候還是可以寫(xiě)入文件呢?我們回到服務(wù)器上檢查配置文件
所以要使配置生效就必須刪除writable = yes這一行配置
[root@localhostsamba]# service smb restart #重啟服務(wù)
關(guān)閉SMB 服務(wù): [確定]
啟動(dòng)SMB 服務(wù): [確定]
清除連接(net use * /d),還是以jery 的身份登陸,發(fā)現(xiàn)創(chuàng)建文件的時(shí)候被拒絕
回到服務(wù)器,寫(xiě)入一行內(nèi)容到test文件中:
[root@localhostsamba]# echo "this is test" > /opt/test/test.txt
客戶(hù)機(jī)上已經(jīng)有名為test的文件了,當(dāng)打開(kāi)這個(gè)文件,為它加上一行內(nèi)容時(shí)被拒絕
退出jery,清除連接,再用jene登陸,jene寫(xiě)入文件和文件夾成功。
#p#
實(shí)現(xiàn)用戶(hù)的別名訪問(wèn),并測(cè)試權(quán)限
samba目錄下有一個(gè)smbusers的文件,這個(gè)文件就是設(shè)置別名的
[root@localhostsamba]# vi smbusers
打開(kāi)這個(gè)文件,在文件的末尾加上一行 jene = t01 t02 t03 相當(dāng)于給jene起了三個(gè)別名,將后面三個(gè)的用戶(hù)名都映射到j(luò)ene,密碼不變,實(shí)際登陸的賬號(hào)還是jene
接著在主配置文件的[global]中添加:username map = /etc/samba/smbusers配置映射關(guān)聯(lián),用戶(hù)名就指向了smbusers這個(gè)文件中設(shè)置的內(nèi)容
A. 修改后的腳本
B. 效果驗(yàn)證
[root@localhostsamba]# service smb restart #重啟服務(wù)
關(guān)閉SMB 服務(wù): [確定]
啟動(dòng)SMB 服務(wù): [確定]
客戶(hù)機(jī)清除連接(net use * /d)
用t01賬號(hào)登陸 \\192.168.10.3
看到多了一個(gè)名為jene的共享文件夾,是因?yàn)槿峙渲弥杏衃homes]家目錄的配置,誰(shuí)登陸就會(huì)把自己的家目錄共享,因?yàn)閠01映射的還是jene賬號(hào),所以jene登陸時(shí)也會(huì)看到自己的家目錄也被共享了,在家目錄的共享文件夾中是可以進(jìn)行任何操作的
在test文件夾中新建一個(gè)名為iamt01的文件,回到服務(wù)器查看這個(gè)文件的屬性,屬主和屬組是jene證明登陸的還是jene,t02和t03登陸也是這樣,這里就不多做測(cè)試了
#p#
實(shí)現(xiàn)對(duì)特定的訪問(wèn)地址進(jìn)行限制
若要拒絕誰(shuí)訪問(wèn),只需要在主配置文件的[test]中添加一行:hosts deny = 192.168.10. 10.0.0. #192.168.10.表示192.168.10.0這個(gè)網(wǎng)段,讓這個(gè)網(wǎng)段的所以主機(jī)都不可以訪問(wèn),這里設(shè)置拒絕兩個(gè)網(wǎng)段192.168.10.0和10.0.0.0
A. 修改后的腳本
B. 效果驗(yàn)證
[root@localhostsamba]# service smb restart #重啟服務(wù)
關(guān)閉SMB 服務(wù): [確定]
啟動(dòng)SMB 服務(wù): [確定]
客戶(hù)機(jī)清除連接(net use * /d)
這次使用t02這個(gè)賬號(hào)來(lái)訪問(wèn),可以訪問(wèn)其他共享文件夾但是因?yàn)榭蛻?hù)機(jī)ip地址為192.168.10.2,在test共享文件夾拒絕訪問(wèn)的網(wǎng)段里面所以當(dāng)打開(kāi)test文件夾時(shí)提示了拒絕訪問(wèn)
實(shí)現(xiàn)訪問(wèn)windows系統(tǒng)中的共享資源
我們?cè)诳蛻?hù)機(jī)(win7系統(tǒng))上共享了一個(gè)名為L(zhǎng)AMP的文件夾
[root@localhost samba]# smbclient -L192.168.10.2 #列出客戶(hù)機(jī)中的共享資源
[root@localhost samba]# mount.cifs//192.168.10.2/LAMP /tmp/ #如果想要訪問(wèn)這個(gè)LAMP文件夾,可以將LAMP掛載到服務(wù)器的tmp目錄下
[root@localhost ~]# df -hT #查看掛載情況,已掛載
查看掛載后的tmp目錄下的內(nèi)容,LAMP里面都是tar壓縮包
[root@localhost samba]# cp/tmp/apr-1.4.6.tar.gz ~ #將其中一個(gè)壓縮文件拷貝到根目錄下(根目錄可以是/root也可以直接寫(xiě)成~)
[root@localhostsamba]# umount /tmp #把掛載的LAMP從tmp目錄下卸載掉
卸載之后查看tmp目錄顯示了原來(lái)tmp目錄下的文件和目錄
4.實(shí)驗(yàn)總結(jié):
1) samba服務(wù)在Linux的系統(tǒng)中實(shí)現(xiàn)了微軟的SMB/CIFS 網(wǎng)絡(luò)協(xié)議,在部署windows、Linux混合平臺(tái)的企業(yè)環(huán)境時(shí),能夠很好的解決不同系統(tǒng)之間的文件互訪問(wèn)題,使文件共享變得更加容易,是非常強(qiáng)大的功能。
2) samba服務(wù)提供了幾種很實(shí)用的訪問(wèn)共享權(quán)限,也提供了服務(wù)器客戶(hù)端的訪問(wèn)控制,在修改配置文件時(shí)一定要注意各個(gè)權(quán)限的配置是否沖突或者遺漏,平時(shí)可多做權(quán)限方面的測(cè)試。