一.samba服服務的安裝
在RHEL5系統的安裝光盤中,與samba相關的軟件包有五個:
1.samba-3.0.23c-2.i386.rpm //服務器程序文件
2.samba-client-3.0.33-3.14.el5.i386.rpm //客戶端程序文件
3.samba-common-3.0.33-3.14.el5.i386.rpm //服務器和客戶端的公共文件
4.samba-swat-3.0.33-3.14.el5.i386.rpm //Web方式的管理工具
5.system-config-samba-1.2.41-5.el5.noarch.rpm //圖形界面管理程序(須要在X圖形環境中使用)
要實現samba服務器和客戶端的的基本功能,前三個軟件包必須安裝。
二.samba服務器的提供的服務
1.smbd:爲客戶機提供服務器中共享資源的訪問,監聽TCP協議的139端口(SMB)、445端口(CIFS);
2.nmbd:提供基於NetBios主機名稱的解析,爲Windos網絡中的主機進行名稱解析,監聽UDP協議的137~138端口;
經過「/etct/init.d/smb」控制samba服務的啓動與終止,無需單獨運行smbd或nmbd。
三samba服務的配置文件
1.lmhosts:用來進行NETBIOS名靜態解析。
2.passdb.tdb:用來存放samba帳戶。
3.secrets.tdb:用來存放samba帳戶密碼。
4.smb.conf: samba服務主配置文件
5.smbusers:用戶名映射文件
四.smb.conf文件經常使用配置項
workgroup:設置服務器所在的工做組名稱,例如「WORKGRUOP」(windows主機默認工做組名)
server string:設置服務器的說明文字,用於描述samba服務器
cecurity:設置服務器的安全級別,可設爲如下四個值中的一個:share(可匿名訪問)、user(需由本服務器驗證用戶名及密碼)、server(由另外一臺服務器驗證用戶名及密碼)、domain(由windows域控制器驗證用戶名及密碼)
log file:設置samba服務器的日誌文件,默認設置爲「/var/log/samba/%m.log」,%m表示客戶端主機名或IP地址
max log size:設置日誌文件的最大容量,默認爲50,表示50KB
comment:設置對應共享目錄的註釋、說明信息
path:設置對應共享目錄在服務器中的文件夾路徑
browseable:設置該共享目錄在「網上鄰居」中是否可見,設置爲no時至關於隱藏共享目錄
guest ok / public:設置是否全部人均可以訪問共享目錄
writable:設置該共享目錄是否可寫
read only:設置該共享目錄是否只讀
valid users:哪些用戶能夠訪問共享目錄
invalid users:哪些用戶不能訪問共享目錄
write list:哪些用戶有寫入權限
read list:哪些用戶只有讀取權限
directory mask:設置共享目錄中的寫入的目錄的權限
create mask:設置共享目錄中的寫入的文件的權限
force group:指定存取資源時須以此設定的羣組使用者進入才能存取(用戶名/@組名)
force user:指定存取資源時須以此設定的使用者進入才能存取(用戶名/@組名)
host allow:設置僅容許訪問共享的網段或IP
host deny:設置僅拒絕訪問共享的網段或IP
下面開始搭建samba文件共享服務器
實驗環境:
根據公司的信息建設要求,須要在局域網內部搭建一臺文件服務器,便於對於數據集中管理備份。考慮到服務器的運行效率及穩定、定全性,選擇在RHEL5操做系統中構建samba服務器以提供文件資源共享服務。
需求描述:
1.在「/var/share/」目錄中創建子目錄public、training、devel,用途以下:
public目錄用於存放公共數據,如公司的規章制度、員工手冊、工做用表格等文件;
training目錄用於存放公司的技術培訓資料;
devel目錄用於存放項目開發數據;
2.將「/var/share/public」目錄共享爲public,全部員工可匿名訪問,可是隻能讀取文件,不能寫入;
3.將「/var/share/training」目錄共享爲peixun,只容許管理員admin及技術部的員工只讀訪部;
4.將「/var/share/devel」目錄共享爲kaifa,技術部的員工均可以讀取該目錄中的文件,可是隻有管理員admin及project項目組的員工有寫入權限。
搭建此服務器的思路:
1.建立共享目錄對應的文件夾:「/var/share/public」、「/var/share/training」、「/var/share/devel」,並設置相應權限。
2.創建相關係統組,用戶並建立samba用戶。
3.修改smb.conf配置文件,添加共享設置。
4.重啓smb服務。
5.驗證明驗結果。
實驗步驟:
1.在/var/sahre/目錄下建立public、training、devel,分別設置權限爲777(全部用戶均有讀取、寫入、可執行權限),此時把權限設置最大沒有關係,能夠在cmb.conf文件中設置共享權限來進行限制(相似於windsow中的NTFS權限和共享權限設置),別外將/var/share/devel目錄的改成project並增長粘滯位權限(devel權限爲1777),以便實現有權限的用戶在/var/share/devel目錄中只能寫入目錄或文件,不能刪除他人的目錄或文件。最終設置以下:
2.創建相關係統組,用戶(只用於訪問samba文件服務器)並建立samba用戶:
#groupadd tech //建立技術組(技術部員工)
#groupadd project //建立項目組(項目組員工)
#useradd -M -g tech lee //建立系統用戶lee並加入tech組,並不爲其建立宿主目錄
#useradd -M -g tech tom //建立系統用戶tom並加入tech組,並不爲其建立宿主目錄
#useradd -M -g project jarry //建立系統用戶jarry並加入project組,並不爲其建立宿主目錄
#useradd -M -g project linda //建立系統用戶linda並加入project組,並不爲其建立宿主目錄
#smbpasswd -a lee //添加samba用戶lee
#smbpasswd -a tom //添加samba用戶tom
#smbpasswd -a jarry //添加samba用戶jarry
#smbpasswd -a linda //添加samba用戶linda
#smbpasswd -a root //添加samba用戶root
3.修改smbusers文件,配置用戶映射,以提升用戶安全性:
root = admin
lee = tech1
tom = tech 2
jarry = pro1
linda = pro2
4.修改smb.conf配置文件,進行共享目錄的設置,通過配置文件檢查工具:testparm命令檢查後顯示的配置清單以下(security設置爲user):
5.重啓samba服務:
service smb restart 或 /etc/init.d/smb restart
6.驗證明驗結果(使用windows客戶機進行驗證):
6.1.使用技術組用戶tech1登陸,驗證是否有訪問全部共享目錄的權限:(可訪問全部共享目錄)
6.2.使用項目組用戶pro1登陸,驗證是否只有訪問public和kaifa共享目錄在kaifa目錄的寫入權限:(驗證成功!)
6.3.使用項目組用戶pro2登陸,驗證是否只有訪問public和kaifa共享目錄在kaifa目錄的寫入權限與粘滯位權限:(驗證成功!)
6.4.另外還能夠使用linux客戶機進行驗證(略),相關命令以下:
6.4.1.使用smbclient工具登陸samba服務器
smbclient -L 服務器IP/主機名 //查看samba服務器共享目錄
smbclient -U 用戶名 //服務器IP/共享目錄 //以仿ftp客戶端方式登陸訪問samba服務器中的共享目錄
6.4.2smbclient 命令說明
?或help [command] : 提供關於幫助或某個命令的幫助
![shell command] :執行所用的SHELL命令,或讓用戶進入 SHELL提示符
cd [目錄] : 切換到服務器端的指定目錄,如未指定,則 smbclient 返回當前本地目錄
lcd [目錄] : 切換到客戶端指定的目錄;
dir 或ls : 列出當前目錄下的文件;
exit 或quit : 退出smbclient
get file1 file2 :從服務器上下載file1,並以文件名file2存在本地機上;若是不想更名,能夠把file2省略
mget file1 file 2 file 3 file n :從服務器上下載多個文件;
md或mkdir 目錄 :在服務器上建立目錄
rd或rmdir 目錄 : 刪除服務器上的目錄
put file1 [file2] :向服務器上傳一個文件file1,傳到服務器上更名爲file2;
mput file1 file2 filen :向服務器上傳多個文件
6.4.3.使用mount命令將共享目錄掛載到本地
mount -o username=用戶名 //服務器IP/共享目錄 /本地主機目錄
搭建此samba服務器所引起的問題:
作完這個實驗有點鬱悶,按照實驗的需求描述,全部員工能夠匿名訪問public文件夾,即不須要用戶名和密碼驗證就能看到public目錄,peixun和kaifa這兩個目錄須要用戶名及密碼驗證才能訪問。也就是要實現匿名用戶與普通用戶併發登陸samba服務器。然而問題是在smb.conf主配置文件中的global全局配置中security配置項只要設置爲user,就不能實現匿名訪問public文件,若是security配置項設置爲share,雖然匿名方式能登入samba服務器訪問public目錄,但tech組和project組沒法使用驗證方式訪問peixun和kaifa這兩個目錄。
測試以下:
security配置項設置爲user就再也不演示了,不能進行匿名訪問public目錄,以上實驗中已經驗證,只進行security配置項設置爲share時的測試:
配置文件以下:
進行匿名訪問:
訪問kaifa和peixun這兩個目錄沒法進行身份驗證:
爲了解決這個問題,想了好多辦法,也在網上查找了這方面問題,雖然一樣有人在我以前提出這類問題,但仍是沒有看到解決的方法,期待有高手指教一下!