samba檔案共享服務
一 samba服務介紹
samba是著名的開源軟體之一,它在linux上實作了微軟的smb/cifs網絡協定,能跨平台實作檔案互通路題
1 samba軟體包構成
samba-3.0.33-3.28.el5 //服務端軟體(預設安裝)
samba-common-3.0.33-3.28.el5 //公共元件(預設安裝)
samba-client-3.0.33-3.28.el5 //用戶端軟體(預設安裝)
samba-swat-3.0.33-3.28.el5.i386.rpm //web圖形管理軟體
2 samba伺服器的主要程式
smbd:提供對伺服器中檔案、列印資源的共享通路
nmbd:提供基于netbios主機名稱的解析
3 samba的服務腳本
/etc/init.d/smb
4 samba的配置目錄及檔案
/etc/samba/
/etc/samba/smb.conf
配置檔案檢查工具:testparm
二 主配置檔案smb.conf
1 配置檔案預設共享
:vim /etc/samba/smb.conf
[global] //全局設定
workgroup = mygroup //所在工作組名稱
server string = samba server version %v //伺服器描述資訊
security = user //安全級别,可用值如下: share、user、server、domain
passdb backend = tdbsam //設定共享賬戶檔案的類型
load printers = yes
cups options = raw
[homes] //宿主目錄共享設定
comment = home directories //對共享目錄的注釋、說明資訊
browseable = no //該共享目錄在"網路上的芳鄰"中是否可見
writable = yes //是否可寫,與read only的作用相反
[printers] //列印機共享設定
comment = all printers
path = /var/spool/samba //共享目錄在伺服器中對應的實際路徑
browseable = no
guest ok = no //是否允許所有人通路,等效于"public
writable = no
printable = yes
2 自定義共享目錄
[newname]
comment = rhel 5.5 dvd directory.
path = /media/cdrom
public = yes //是否使用者驗證
read only = yes
三 建構檔案共享伺服器
1 安裝samba軟體
:yum install samba //安裝
:rpm -qa samb* //檢視
2 可匿名通路的共享
1)建立共享目錄
:mkdir t227
2)修改smb.conf配置檔案
[global]
security = share //允許匿名
[t227]
comment=dddddddddd
path=/t227
public=yes //不需要使用者驗證,所有人都可以通路
readonly=yes //隻能讀取不能寫入
3)可上傳的匿名共享
a) 給共享檔案夾寫入權限
:chmod o+rwx t227
b) 修改配置檔案
[global]
security = share
public=yes //無需使用者驗證
readonly=no //将隻讀禁止即可
3 需使用者驗證的共享
samba使用獨立的共享賬戶資料庫檔案,其中賬戶名稱必須與它同名的系統使用者名相對應,以便對讀寫權限進行控制,共享賬戶的密碼可以與系統使用者的密碼不一樣
1)建立共享賬戶
:useradd //建立對應系統賬戶
:pdbedit -a u1 //建立同名共享賬戶
:pdbedit -l //檢視共享賬戶清單
:pdbedit -x u1 //删除共享賬戶
2)設定使用者通路授權
a)建立共享目錄 //注意不要将目錄建立到root下了
:mkdir t227
b)修改配置檔案
security = user
[t227]
comment=alll
public=no
readonly=no //可寫入
valid users=lisi,zhangsan //指定通路的使用者
write list =lisi //可上傳使用者
注:有時候在windows上登入時驗證時間比較長,即使輸入正确的密碼也提示錯誤,隻要耐心等待一會即可
c)确定使用者通路權限
:chmod o+rw t227 //設定目錄寫入權限
d)設定上傳檔案和目錄的預設權限
: vi /etc/samba/smb.conf
[tools]
……
directory mask = 0755
create mask = 0644
4 重新開機服務
:service smb reload
四 使用者映射及通路位址限制
1 共享賬号映射(别名)
:vim /etc/samba/smbusers
root = administrator admin //可以設定多個别名
nobody = guest pcguest smbguest
lisi = nimei qianqian
:vim /etc/samba/smb.conf //添加全局配置啟用别名
username map=/etc/samba/smbusers
:service smb restart //重新開機服務
2 通路位址限制
一般用在全局配置[global]部分,也可以用于某個具體的共享配置
hosts allow配置項:僅允許特定的客戶機
hosts deny配置項:僅拒絕特定的客戶機
客戶機位址表示形式:
以空格分隔多個位址
主機名或ip位址,例如: 192.168.168.11 或者 prtsvr
網絡位址,例如:173.17. 或者 173.17.0.0/255.255.0.0
: vi /etc/samba/smb.conf
hosts allow = 192.168.4. 173.17.
五 通路共享檔案夾
1 在linux客戶機上的通路
1)查詢目标主機上的共享資源清單
:smbclient -l 192.168.4.11 //無需輸入密碼,直接回車即可
登入并通路共享檔案件
:smbclient -u lisi //192.168.4.11/t227
password:
domain=[localhost] os=[unix] server=[samba 3.0.33-3.28.el5]
smb: \> pwd //檢視目前路徑
smb: \> ls //顯示目錄清單
smb: \> lcd /root //切換到本地下載下傳目錄
smb: \> cd t227 //切換到共享目錄
smb: \> mget share* //下載下傳share開頭的檔案到/root下
smb: \> quit //退出
使用mount挂載共享檔案夾
挂載後可直接檢視共享檔案内容
:mkdir /media/smbdir //建立挂載目錄
:mount -o username=lisi //192.168.4.11/tools /media/smbdir/ //挂載
:mount | tail -1 //檢視挂載狀态
//192.168.4.11/tools on /media/smbdir type cifs (rw,mand)
2 windows客戶機通路
方法:在運作裡輸入\\192.168.1.1即可通路
注:需要切換使用者時在cmd裡輸入net use * /del
清除共享使用者緩存,清不掉時多執行幾次指令即可
六 swat 圖像管理工具
1 swat介紹
swat是samba的圖形化管理工具。我們可以通過浏覽器利用swat工具來設定samba
swat工具嵌套在xinetd超級守護程序中,要通過啟用xinetd程序來啟用swat。是以要先安裝xinetd工具包,然後安裝swat工具包。
2 編輯swat配置檔案
因為swat是xinetd超級守護程序的一個子程序,是以swat配置檔案在/etc/xinetd.d目錄中
:vim /etc/xinetd.d/swat
service swat
{
port = 901 //tcp端口号,可修改
socket_type = stream
wait = no
only_from = 0.0.0.0 //指定來訪ip位址,預設隻能本機,修改為所有ip
user = root
server = /usr/sbin/swat
log_on_failure += userid
disable = no //随xinetd一起啟動
3 檢視tcp端口号是否被添加進去
:cat /etc/services | grep 901
如果/etc/services檔案中沒有tcp901,那麼就編輯該檔案,添加"swat 901/tcp"即可
4 啟動swat
因為swat是xinetd的子程序,是以隻要啟用了xinetd,那麼swat也就會伴随xinetd啟動
: service xinetd restart
5 防火牆設定
關閉防火牆或者開啟swat相關端口。
【關閉防火牆】
[root@rhel5 /]#service iptables stop
【開啟swat901端口,直接寫入input鍊,重新開機iptables會丢失】
[root@rhel5 /]#iptables -i input -p tcp --dport 901 -j accept
【開啟swat901端口,通過編輯"rh-firewall-1-input"自定義鍊來打開,配置不會丢失】
[root@rhel5 /]#vi /etc/sysconfig/iptables
加入:-a rh-firewall-1-input -p tcp --dport 901 -j accept
【關閉selinux】
[root@rhel5 /]#vi /etc/sysconfig/selinux
設定"selinux=disabled"
6 使用web登入swat
http://192.168.120.241:901
七 實驗
作者:馬向軍時間:2013-05-07
實驗目的:建構samba檔案共享伺服器,模拟公司内部共享需求
實驗要求:
1 公司需要一個所有員工都能通路,但隻有讀取權限的共享目錄
2 公司需要一個管理者和技術部所有員工都能通路,但隻有讀取權限、禁止其他員工通路的共享目錄
3 公司需要一個技術不所有員工可以讀取,但隻有管理者和項目組的所有員工可以寫入的共享目錄
實驗環境:如圖所示
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiATO2sDctFmJ5MmM1IWNhRDOmVGZ0QWMkRDN0EzYvwVZsRGZp12Lc52YucWbpFmbpNnLwEzcvw1LcpDc0RHaiojIsJye.jpg)
實驗步驟:
1,在伺服器上安裝samba服務
:rpm -qa samb* //檢視
2,建立組、使用者和共享賬戶
:groupadd jishu 建立技術組
:groupadd xiangmu 建立項目組
:useradd jishu1 建立技術組員工
:useradd xiangmu1 建立項目組員工
:pdbedit -a jishu1 添加共享賬戶jishu1
:pdbedit -a xiangmu1 添加共享賬戶xinagmu1
:gpasswd -a jishu1 jishu 将技術組員工加入基本組jishu
:gpasswd -a xiangmu1 xiangmu 将項目組員工加入基本組xiangmu
要求1
:mkdir public 建立目錄
:vim /etc/samba/smb.conf 添加共享目錄
[public]
comment=all
path=/public
public=yes 所有人都可以通路
readonly=yes 不能寫入
:service smb restart 重新開機服務
要求2
:mkdir jishu
:pdbedit -a root 添加共享賬戶root
:vim /etc/samba/smbusers 為root使用者設定别名
root = admin
:vim /etc/samba/smb.conf 配置共享目錄
[jishu]
comment=jishu
path=/jishu
public=no //不公開
readonly=yes //不能寫入
valid users=admin,@jishu //隻admin和技術部員工能通路
要求3
:mkdir xiangmu
:vim /etc/samba/smb.conf 配置共享目錄
[xiangmu]
public=no //不公開
valid users=admin,@xiangmu,@jishu //可通路清單
write list=admin,@xiangmu //可寫入使用者
:chown :xiangmu xiangmu //給共享目錄設定屬組
:chmod g+w xiangmu //設定屬組可寫
:service smb restart //重新開機服務