共計 5867 個字符,預計需要花費 15 分鐘才能閱讀完成。
這篇文章給大家分享的是有關 RHEL6.5 下如何部署 samba 企業級文件服務器的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
1. 實驗需求:
1) 使用 RPM 包安裝 samba 服務
2) 實現匿名訪問,驗證可以讀寫文件、目錄
3) 實現指定用戶的訪問
4) 實現指定用戶的訪問,并為用戶賦予不同的權限
5) 實現用戶的別名訪問,并測試權限
6) 實現對特定的訪問地址進行限制
7) 實現訪問 windows 系統中的共享資源
2. 實驗環境:
Linux 服務器系統版本:Red Hat Enterprise Linux 6.5 IP:192.168.10.3
Windows 客戶機系統版本:Windows 7 Ultimate x64 IP:192.168.10.2
Samba 軟件版本:samba-3.6.9
3. 實驗步驟:
基本安裝操作
A. 掛載系統光盤并安裝 samba
要安裝 samba 服務需要從 rpm 軟件包安裝,rpm 安裝包一般放在系統光盤中的 Packages 目錄中,我們首先用 mount 命令看一下是否掛載了光盤到系統中
如果沒有掛載,將光盤手動掛載到系統的 mnt 目錄下
查看光盤已經被掛載
在 Packages 目錄下找到 samba 服務的軟件包并安裝
B. 查看 samba 配置文件
安裝好 samba 之后我們要想服務器能夠按照我們的意愿工作就要去修改配置文件了
可以用 rpm -qc 來查看一個已經安裝軟件的文檔安裝位置
發現并沒有顯示 conf 配置文件,但根據經驗一般 conf 配置文件都會放在 /etc 目錄下,查找 /etc/samba/ 目錄,找到主配置文件 smb.conf
[root@localhost~]# more /etc/samba/smb.conf 查看文件里面的內容,發現內容很長,并且有很多 #號的注釋
我們為了看起來方便,可以過濾掉所有帶 #號的行,并把過濾過后的文件內容保存為另外一個文件 smb.con:
[root@localhost ~]# grep -v # /etc/samba/smb.conf /etc/samba/smb.con
查看發現已經有了 smb.con 文件,建議原來以.conf 結尾的配置文件也不要刪除,可以給它改個名字做個備份,以防將來配置出錯還可以把它繼續拿來修改
[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
實現匿名訪問,驗證可以讀寫文件、目錄
[root@localhostsamba]# vi 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=guest ok,設為 yes 允許匿名用戶訪問 browseable= yes #讓匿名用戶可以看到共享內容 writable= yes #設置可以有寫入的權限 createmask = 0644 #設置新建文件的權限,表示屬主具有讀寫權限,其他人都只有只讀權限(rw-r--r--) directory mask = 0755 # 設置新建目錄的權限,表示屬主具有讀寫執行權限,其他人沒有寫入權限(rwxr-xr-x)
A. 修改后的腳本:
[root@localhostsamba]# mkdir /opt/share #創建 share 共享目錄 [root@localhostsamba]# chmod 777 /opt/share #修改權限為 777 [root@localhostsamba]# service smb start # 啟動 samba 服務
[root@localhostsamba]# netstat -ant # 查看網絡端口狀態
139 和 445 兩個 samba 服務的端口正在被監聽,samba 服務是正常的,下面就可以去客戶機上測試了。測試之前,必須把防火墻和 selinux 關掉
[root@localhost samba]# service iptables stop iptables:將鏈設置為政策 ACCEPT:filter [確定] iptables:清除防火墻規則: [確定] iptables:正在卸載模塊: [確定] [root@localhost samba]# setenforce 0
B. 效果驗證:
在客戶機上測試能否 ping 通服務器
在【開始】菜單的搜索框中輸入 \\192.168.10.3,可以看到名為 share 的共享文件夾
進入文件夾,可以新建文件和文件夾,文件里可以寫入任何內容,文件夾下也能夠再新建文件,和配置文件里的設置是一樣的,匿名訪問成功。
回到服務器,我們查看共享文件夾下匿名用戶訪問時新建的文件,發現屬主和屬組都是 nobody,新建的文件權限是 644,文件夾的權限是 755
nobody 是一個系統賬號,匿名訪問新建的就會顯示為 nobody
實現指定用戶的訪問
因為是要指定用戶進行訪問了,所以 [global] 全局模式里面只需要修改 security
使默認安全級別為 user
security = user
下面是根據具體的共享目錄進行配置,在配置文件的末尾插入以下行,新建一個 test 的目錄的共享配置,不讓他匿名訪問,只有指定用戶才能訪問
[test] #指定目錄的共享名稱 path= /opt/test #指定共享 test 目錄 browseable= yes #設置可以看到共享內容 writable= yes #設置可以有寫入的權限 createmask = 0644 #設置新建文件的權限,表示屬主具有讀寫權限,其他人都只有只讀權限(rw-r--r--) directory mask = 0755 # 設置新建文件夾的權限,表示屬主具有讀寫執行權限,其他人沒有寫入權限(rwxr-xr-x)
系統當中的用戶當然也可以訪問共享目錄,但是我們這里希望用 samba 自己的賬戶來訪問,新建兩個用于 samba 的賬戶不設置他們的密碼,這樣他們可以作為 samba 用戶使用但是不能夠登陸系統
[root@localhost samba]# useradd jery #創建賬戶 jery 和 jene [root@localhost samba]# useradd jene [root@localhost samba]# smbpasswd -ajery #設置賬戶為 samba 用戶并設置密碼 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 賬戶信息 jery:500: jene:501: [root@localhost samba]# mkdir /opt/test #創建共享目錄 test [root@localhost samba]# chmod 777/opt/test #修改權限為 777 [root@localhost samba]# service smbrestart # 重啟 samba 服務,這里也可以使用 reload,但是 reload 是重新加載配置并不會和客戶機徹底斷開連接,這里為了測試用了 restart 關閉 SMB 服務: [確定] 啟動 SMB 服務: [確定]
A. 修改后的腳本
B. 效果驗證
測試之前先要在客戶機上清除之前的連接否則會因為緩存而直接進入共享目錄
在【開始】菜單的搜索框中輸入 \\192.168.10.3\test,跳出對話框,輸入 jery 的賬號和密碼
jery 這個用戶可以登陸并且對 test 共享目錄可以進行讀寫操作
在共享目錄里面新建了一個名為 jery 的文件,回到服務器查看這個文件的權限,顯示為 jery
實現指定用戶的訪問,并為用戶賦予不同的權限
接著為了測試訪問的用戶的不同權限,在 [test] 配置中加入以下兩行
valid users =jery, jene #允許這兩個用戶可以訪問 write list =jene # 只允許 jene 這個用戶可以寫入
A. 修改后的腳本
B. 效果驗證
[root@localhostsamba]# service smb restart #重啟服務
關閉 SMB 服務: [確定]
啟動 SMB 服務: [確定]
客戶機上 net use * / d 清除連接
這次以 jery 登陸,測試寫入文件
這個時候明明我們設置了只有 jene 可以寫入為什么用 jery 登陸進去的時候還是可以寫入文件呢?我們回到服務器上檢查配置文件
所以要使配置生效就必須刪除 writable = yes 這一行配置
[root@localhostsamba]# service smb restart #重啟服務
關閉 SMB 服務: [確定]
啟動 SMB 服務: [確定]
清除連接(net use * /d),還是以 jery 的身份登陸,發現創建文件的時候被拒絕
回到服務器,寫入一行內容到 test 文件中:
[root@localhostsamba]# echo this is test /opt/test/test.txt
客戶機上已經有名為 test 的文件了,當打開這個文件,為它加上一行內容時被拒絕
退出 jery,清除連接,再用 jene 登陸,jene 寫入文件和文件夾成功。
實現用戶的別名訪問,并測試權限
samba 目錄下有一個 smbusers 的文件,這個文件就是設置別名的
[root@localhostsamba]# vi smbusers
打開這個文件,在文件的末尾加上一行 jene = t01 t02 t03 相當于給 jene 起了三個別名,將后面三個的用戶名都映射到 jene,密碼不變,實際登陸的賬號還是 jene
接著在主配置文件的 [global] 中添加:username map = /etc/samba/smbusers 配置映射關聯,用戶名就指向了 smbusers 這個文件中設置的內容
A. 修改后的腳本
B. 效果驗證
[root@localhostsamba]# service smb restart #重啟服務
關閉 SMB 服務: [確定]
啟動 SMB 服務: [確定]
客戶機清除連接(net use * /d)
用 t01 賬號登陸 \\192.168.10.3
看到多了一個名為 jene 的共享文件夾,是因為全局配置中有 [homes] 家目錄的配置,誰登陸就會把自己的家目錄共享,因為 t01 映射的還是 jene 賬號,所以 jene 登陸時也會看到自己的家目錄也被共享了,在家目錄的共享文件夾中是可以進行任何操作的
在 test 文件夾中新建一個名為 iamt01 的文件,回到服務器查看這個文件的屬性,屬主和屬組是 jene 證明登陸的還是 jene,t02 和 t03 登陸也是這樣,這里就不多做測試了
實現對特定的訪問地址進行限制
若要拒絕誰訪問,只需要在主配置文件的 [test] 中添加一行:hosts deny = 192.168.10. 10.0.0. #192.168.10. 表示 192.168.10.0 這個網段,讓這個網段的所以主機都不可以訪問,這里設置拒絕兩個網段 192.168.10.0 和 10.0.0.0
A. 修改后的腳本
B. 效果驗證
[root@localhostsamba]# service smb restart #重啟服務
關閉 SMB 服務: [確定]
啟動 SMB 服務: [確定]
客戶機清除連接(net use * /d)
這次使用 t02 這個賬號來訪問,可以訪問其他共享文件夾但是因為客戶機 ip 地址為 192.168.10.2,在 test 共享文件夾拒絕訪問的網段里面所以當打開 test 文件夾時提示了拒絕訪問
實現訪問 windows 系統中的共享資源
我們在客戶機(win7 系統)上共享了一個名為 LAMP 的文件夾
[root@localhost samba]# smbclient -L192.168.10.2 #列出客戶機中的共享資源
[root@localhost samba]# mount.cifs//192.168.10.2/LAMP /tmp/ #如果想要訪問這個 LAMP 文件夾,可以將 LAMP 掛載到服務器的 tmp 目錄下
[root@localhost ~]# df -hT # 查看掛載情況,已掛載
查看掛載后的 tmp 目錄下的內容,LAMP 里面都是 tar 壓縮包
[root@localhost samba]# cp/tmp/apr-1.4.6.tar.gz ~ #將其中一個壓縮文件拷貝到根目錄下(根目錄可以是 /root 也可以直接寫成~)
[root@localhostsamba]# umount /tmp #把掛載的 LAMP 從 tmp 目錄下卸載掉
卸載之后查看 tmp 目錄顯示了原來 tmp 目錄下的文件和目錄
感謝各位的閱讀!關于“RHEL6.5 下如何部署 samba 企業級文件服務器”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!