Samba文件共享
---------------------------------------
一、前言
二、環境
三、案例
四、配置samba
五、測試訪問
六、掛載
---------------------------------------
一、前言
SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通信協議,它爲局域網內的不同計算機之間提供文件及打印機等資源的共享服務。SMB協議是客戶機/服務器型協議,客戶機通過該協議可以訪問服務器上的共享文件系統、打印機及其他資源。通過設置“NetBIOS over TCP/IP”使得Samba不但能與局域網絡主機分享資源,還能與全世界的電腦分享資源。
samba端口簡介:
1)Port 137 (UDP) - NetBIOS 名字服務 ; nmbd
2)Port 138 (UDP) - NetBIOS 數據報服務
3)Port 139 (TCP) - 文件和打印共享 ; smbd (基於SMB協議,主要在局域網中使用,文件共享協議)
4)Port 389 (TCP) - 用於 LDAP (Active Directory Mode)
5)Port 445 (TCP) - NetBIOS服務在windos 2000及以後版本使用此端口,(Common Internet File System,CIFS,它是SMB協議擴展到Internet後,實現Internet文件共享)
6)Port 901 (TCP) - 用於 SWAT,用於網頁管理Samba
Samba功能和應用範圍
Samba應用範圍主要是Windows和Linux 系統共存的網絡中使用;如果一個網絡環境都是Linux或Unix類的系統,沒有必要用Samba,應該用NFS更好一點;Samba主要爲我們提供共享文件和共享打印機等服務;
Samba 有兩個服務器,一個是smb,另一個是nmb;
smb 是Samba 的主要啓動服務器,讓其它機器能知道此機器共享了什麼,主要用來傳輸數據;如果不打開nmb服務器的話,只能通過IP來訪問。
而nmb是解析用的,就是把這臺Linux機器所共享的工作組及在此工作組下的netbios name解析出來;並用來作資源宣告;
二、環境
samba服務器: CentOS6.4 64位
軟件包:
samba:這個軟件主要提供了SMB服務器所需的各項服務程序(smbd和nmbd)、相關的文件以及其他與SAMBA相關的logrotate配置文件及開機默認選項文件等。
samba-client:當linux系統作爲samba客戶端時,就需要samba-client了,含有各種工具命令。
三、簡單案例
公共目錄 public /abc ro 允許任何人匿名訪問,
張三 smbzs /tmp/zhangsan rw 不允許他人訪問
李四 smbls /tmp/lisi rw 不允許他人訪問
四、配置samba
安裝:Samba、samba-client
[root@localhost ~]# yum install samba samba-client
[root@localhost ~]# rpm -ql samba
/etc/logrotate.d/samba //日誌輪詢
/etc/openldap/schema
/etc/openldap/schema/samba.schema
/etc/pam.d/samba
/etc/rc.d/init.d/nmb
/etc/rc.d/init.d/smb
/usr/bin/smbstatus
[root@localhost ~]# service smb start //啓動smb服務器
Starting SMB services: [ OK ]
[root@localhost ~]# netstat -tupln |grep smb
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2207/smbd
tcp 0 0 :::139 :::* LISTEN2207/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN2207/smbd
tcp 0 0 :::445 :::* LISTEN2207/smbd
[root@localhost ~]# service nmb start //啓動nmb服務器
Starting NMB services: [ OK ]
[root@localhost ~]# netstat -tupln |grep nmb
udp 0 0 192.168.2.102:137 0.0.0.0:* 2233/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 2233/nmbd
udp 0 0 192.168.2.102:138 0.0.0.0:* 2233/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 2233/nmbd
[root@localhost ~]# useradd zhangsan //創建samba賬號得先在本地創建賬號,不要設置密碼
[root@localhost ~]# useradd lisi
[root@localhost ~]# chown zhangsan.zhangsan /tmp/zhangsan/
[root@localhost ~]# chown lisi.lisi /tmp/lisi/
[root@localhost ~]# ll /tmp
drwxr-xr-x. 2 lisi lisi 4096 Feb 19 01:39 lisi
drwxr-xr-x. 2 zhangsan zhangsan 4096 Feb 19 01:39 zhangsan
[root@localhost ~]# touch /tmp/zhangsan/zhangsan.txt
[root@localhost ~]# touch /tmp/lisi/lisi.txt
[root@localhost ~]# mkdir /tmp/abc //新建公共目錄
[root@localhost ~]# touch /tmp/abc/public.txt
編輯smb.conf文件
[root@localhost ~]# vim /etc/samba/smb.conf
[root@localhost ~]# service smb restart
Shutting down SMB services: [ OK ]
Starting SMB services: [ OK ]
[root@localhost ~]# service nmb restart
Shutting down NMB services: [ OK ]
Starting NMB services: [ OK ]
[root@localhost ~]# testparm //用testparm檢查smb.conf配置文件語法設置的正確性
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[public]"
Processing section "[smbzhangsan]"
Processing section "[smblisi]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
idmap config * : backend = tdb
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
print ok = Yes
browseable = No
[public]
comment = this is a share dir
path = /tmp/abc
guest ok = Yes
[smbzhangsan]
comment = this is zhangsan dir
path = /tmp/zhangsan
valid users = zhangsan
read only = No
[smblisi]
comment = this is lisi dir
path = /tmp/lisi
valid users = lisi
read only = No
創建samba本地賬號
[root@localhost ~]# smbpasswd -a zhangsan
New SMB password:
Retype new SMB password:
Added user zhangsan.
[root@localhost ~]# smbpasswd -a lisi
New SMB password:
Retype new SMB password:
Added user lisi.
五、測試訪問:
訪問測試1(windows XP訪問linux共享)
輸入samba服務器地址
以張三的身份訪問
public是公共目錄,任何人都可以進入,只有可讀權限;smbzhangsan是張三的目錄,張三本人具有一切權限;zhangsan是張三的家目錄;smblisi是李四的目錄,張三無法進入。
將公共目錄固定XP資源管理器中(使用一個沒有使用的盤符)
已固定在資源管理器中,可以隨時訪問。
[root@localhost ~]# smbclient -L //192.168.2.102 //查看共享資源
Enter root's password:
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6]
Sharename Type Comment
--------- ---- -------
public Disk this is a share dir
smbzhangsan Disk this is zhangsan dir
smblisi Disk this is lisi dir
IPC$ IPC IPC Service (Samba Server Version 3.6.9-151.el6)
[root@localhost ~]# smbclient //192.168.2.102/smbzhangsan -U zhangsan
Enter zhangsan's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6]
smb: \> ls
. D 0 Tue May 13 13:28:53 2014
.. D 0 Tue May 13 13:24:45 2014
zhangsan.txt 0 Tue May 13 13:28:53 2014
35434 blocks of size 524288. 25166 blocks available
smb: \> q
六、掛載
臨時掛載,以張三爲例,下同。
[root@localhost ~]# mount //192.168.2.102/smbzs /mnt/zhangsan/ -o username=zhangsan,password='123'
[root@localhost ~]# mount //查看
//192.168.2.102/smbzs on /mnt/zhangsan type cifs (rw,username=zhangsan,password=123)
永久掛載1(賬戶和密碼可見,不安全)
[root@localhost ~]# vim /etc/fstab
//192.168.2.102/smbzs /mnt/zhangsan cifs defaults,username=zhangsan,password=123 0 0
[root@localhost ~]# mount -a //重新掛載
[root@localhost ~]# mount
//192.168.2.102/smbzs on /mnt/zhangsan type cifs (rw,use2name=zhangsan,password=123)
永久掛載2(賬戶和密碼寫入文件)
[root@localhost ~]# vim /etc/samba/zhangsan
1 username=zhangsan
2 password=123
[root@localhost ~]# chmod 600 /etc/samba/zhangsan
[root@localhost ~]# ll /etc/samba/zhangsan
-rw-------. 1 root root 29 Feb 19 02:55 /etc/samba/zhangsan
[root@localhost ~]# vim /etc/fstab
//192.168.2.102/smbzs /mnt/zhangsan cifs defaults,credentials=/etc/samba/zhangsan 0 0
[root@localhost ~]# mount -a
[root@localhost ~]# mount
//192.168.2.102/smbzs on /mnt/zhangsan type cifs (rw)