SAMBA簡介
NFS只能實現在linux和unix系統之間實現文件共享,而CIFS(公共因特網文件系統)只能實現windows系統之間的文件共享。那麼linux或unix系統怎麼和windows系統之間共享文件呢?這就要用到SAMBA服務器了,SAMBA服務器能真正實現在不同主機、不同系統之間的文件共享。
主要程序
smbd:提供對文件/文件資源的共享訪問
監聽端口 TCP139、TCP445
nmbd:提供基於NetBIOS協議的主機名解析
監聽端口 UDP137、UDP138
環境拓撲:
Linux Client
-----------RHEL5.9(vmnet1)-------------(vmnet1)
Win7 Client
要求一:Samba匿名共享
工作組爲Tarena
將目錄 /usr/src 共享給所有人
共享名設爲 tools
允許所有人訪問、無需密碼驗證
訪問權限爲只讀
1、安裝軟件包
[root@localhost ~]# rpm -q samba-client samba samba-common //檢查samba服務是否安裝
package samba-client is not installed
package samba is not installed
package samba-common is not installed
提示沒有安裝Samba包
2、修改yum主配置文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# cp rhel-debuginfo.repo rhel- server.repo
[root@localhost yum.repos.d]# cat rhel-server.repo
[rhel-server] //源名稱
name=Red Hat Enterprise Linux Server //本軟件源的描述
baseurl=file:///misc/cd/Server //指定YUM服務端的URL地址
enabled=1 //是否啓此通道
gpgcheck=0 //是否驗證待安裝的RPM包
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //用於RPM驗證的密鑰文件
//放入rhel5.9 iso
[root@localhost yum.repos.d]# yum clean all //清空yum緩存
3、安裝samba服務
[root@localhost yum.repos.d]# yum -y install samba samba-client samba-common
4、修改主配置文件
[root@localhost ~]# cd /etc/samba/
[root@localhost samba]# cp smb.conf smb.conf.bak //修改前備份
[root@localhost samba]# vim /etc/samba/smb.conf //samba主配置文件
...
74 workgroup = Tarena //工作組名稱
75 server string = Win File Ser //服務器描述
...
89 log file = /var/log/samba/%m.log //日誌路徑,%m客戶機地址
...
91 max log size = 50 //日誌最大容量(KB)
...
101 security = share //使用的安全級別(share:匿名、user:用戶認證、server:由指定的服務器認證、domain:Windows域認證)
...
221 load printers = no //屏蔽共享時看到的打印圖標
...
289 [tools] //共享文件名
290 comment = Tools Public //描述
291 path = /usr/src //共享目錄的位置
292 public = yes //所有人可用
293 read only = yes //可讀(wrtable可寫)
5、啓動服務
[root@localhost ~]# service smb restart //開啓smb服務
[root@localhost ~]# chkconfig smb on //設置開機自動啓動
[root@localhost ~]# netstat -anptu | grep mbd //檢查端口
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 7008/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 7008/smbd
udp 0 0 192.168.10.10:137 0.0.0.0:* 7011/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 7011/nmbd
udp 0 0 192.168.10.10:138 0.0.0.0:* 7011/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 7011/nmbd
6、客戶端測試:
Windown:
UNC路徑 \\192.168.10.10
Linux:
[root@localhost ~]# yum -y install samba-client //安裝samba客戶端
[root@localhost ~]# smbclient -L 192.168.10.10 //查詢
[root@localhost ~]# smbclient //192.168.10.10/tools //連接
[root@localhost ~]# mkdir -p /data/smb
[root@localhost ~]# mount -t cifs //192.168.10.10/tools /data/smb/ //掛載
[root@localhost ~]# grep smb /etc/fstab //設置開機自動掛載
//192.168.10.10/tools /data/smb cifs defaults 0 0
要求二 Samba用戶驗證
修改原有的 [tools] 匿名共享設置
不再允許所有人訪問
只允許nick讀取、tom寫入
拒絕其他用戶或匿名訪問
上傳目錄的權限爲755
上傳文件的權限爲644
1、新建相應賬戶與samba密碼
[root@localhost ~]# useradd nick //建立系統用戶
[root@localhost ~]# useradd tom
[root@localhost ~]# echo "redhat" | passwd --stdin nick //設置系統用戶密碼
[root@localhost ~]# echo "redhat" | passwd --stdin tom
[root@localhost ~]# pdbedit -a nick //添加爲共享賬號並設置密碼(可以測試哪個密碼會生效)
[root@localhost ~]# pdbedit -a tom
2、修改主配置文件
[root@localhost ~]# vim /etc/samba/smb.conf
...
101 security = user //啓用用戶認證
...
289 [tools] //共享名
290 comment = Tools Public
291 path = /usr/src //指定共享路徑
292 public = no //不對所以人開放
293 valid users = nick,tom //指定合法用戶
294 write list = tom //用戶tom可讀可寫
295 read only = yes //默認權限爲只讀
296 directory mask = 0755 //上傳的目錄權限
297 create mask = 0644 //上傳的文件權限
...
[root@localhost ~]# setfacl -m u:tom:rwx /usr/src/ //指定用戶tom對這個目錄具有讀寫執行權限
3、啓動服務
[root@localhost ~]# service smb restart
4、客戶端測試
[root@localhost ~]# smbclient -U nick //192.168.10.10/tools
[root@localhost ~]# mount -o username=nick //192.168.10.10/tools /data/smb //建立掛載
要求三 Samba賬戶別名與訪問地址控制
把普通帳戶nick設置別名爲kaka
設置只允許192.168.10.5地址訪問
1、修改Samba用戶別名文件
[root@localhost ~]# vim /etc/samba/smbusers
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest
nick = kaka
2、修改主配置文件
[root@localhost ~]# vim /etc/samba/smb.conf
...
76 username map = /etc/samba/smbusers
...
289 [tools]
290 comment = Tools Public
291 path = /usr/src
292 public = no
293 valid users = nick,tom
294 write list = tom
295 read only = yes
296 directory mask = 0755
297 create mask = 0644
298 hosts allow = 192.168.10.5
3、客戶端測試