---------------------------------------
一、前言
二、环境
三、案例
四、配置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来访问,比如在Windows的IE浏览器上打入下面的一条来访问;
\\192.168.1.5\共享目录
\\192.168.1.5\opt
而nmb是解析用的,就是把这台Linux机器所共享的工作组及在此工作组下的netbios name解析出来;
二、环境
samba服务器: CentOS6.4 32位 (redhat6.5 也已测试,没问题)
IP:192.168.2.102/24
软件包:
samba:这个软件主要提供了SMB服务器所需的各项服务程序(smbd和nmbd)、相关的文件以及其他与SAMBA相关的logrotate配置文件及开机默认选项文件等。
samba-client:当linux系统作为samba客户端时,就需要samba-client了,含有各种工具命令。
三、简单案例
公共目录 public /abc ro 允许任何人匿名访问,
张三 smbzs /tmp/zhangsan rw 不允许他人访问
李四 smbls /tmp/lisi rw 不允许他人访问
四、配置samba
# yum install samba samba-client //安装samba及samba客户端 # rpm -ql samba |less //查看samba安装路径 # service smb start Starting SMB services: [ OK ] # netstat -tupln |grep smb tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2565/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2565/smbd tcp 0 0 :::139 :::* LISTEN 2565/smbd tcp 0 0 :::445 :::* LISTEN 2565/smbd # service nmb start Starting NMB services: [ OK ] # netstat -tupln |grep nmb udp 0 0 192.168.2.255:137 0.0.0.0:* 2583/nmbd udp 0 0 192.168.2.102:137 0.0.0.0:* 2583/nmbd udp 0 0 0.0.0.0:137 0.0.0.0:* 2583/nmbd udp 0 0 192.168.2.255:138 0.0.0.0:* 2583/nmbd udp 0 0 192.168.2.102:138 0.0.0.0:* 2583/nmbd udp 0 0 0.0.0.0:138 0.0.0.0:* 2583/nmbd # mkdir /tmp/zhangsan # mkdir /tmp/lisi # useradd zhangsan //只有本地账号才能创建samba账号,不要设置密码 # useradd lisi # chown zhangsan.zhangsan /tmp/zhangsan/ # chown lisi.lisi /tmp/lisi/ # 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 # touch /tmp/zhangsan/zhangsan.txt # touch /tmp/lisi/lisi.txt # mkdir /abc //新建公共目录 # touch /abc/public.txt # vim /etc/samba/smb.conf //编辑samba主配置文档 291 [public] 292 comment = This is a public dir 293 path = /abc 294 public = yes 295 ; writable = yes 296 ; printable = no 297 ; write list = +staff 298 [smbzs] 299 comment = This is zhangsan's share dir 300 path = /tmp/zhangsan 301 valid users = zhangsan //合法用户只有自己 302 writable = yes 303 ; printable = no 304 ; write list = +staff 305 [smbls] 306 comment = This is lisi's share dir 307 path = /tmp/lisi 308 valid users = lisi 309 writable = yes 310 ; printable = no 311 ; write list = +staff # testparm //查看配置 Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit Processing section "[homes]" Processing section "[printers]" Processing section "[public]" Processing section "[smbzs]" Processing section "[smbls]" 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 interfaces = 192.168.2.102/24 bind interfaces only = Yes 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 public dir path = /abc guest ok = Yes [smbzs] comment = This is zhangsan's share dir path = /tmp/zhangsan valid users = zhangsan read only = No [smbls] comment = This is lisi's share dir path = /tmp/lisi valid users = lisi read only = No # smbpasswd -a zhangsan //创建zhangsan用户的samba登录密码 # smbpasswd -a lisi # service smb restart Shutting down SMB services: [ OK ] Starting SMB services: [ OK ]
五、测试访问(为了正常测试,请先关闭防火墙和SELinux。)
1-1.访问测试1(windows XP访问linux共享)
输入samba服务器地址
以张三的身份访问
public是公共目录,任何人都可以进入,只有可读权限;smbzs是张三的目录,张三本人具有一切权限;zhangsan是张三的家目录;smbls是李四的目录,张三无法进入。
将公共目录固定XP资源管理器中(使用一个没有使用的盘符)
已固定在资源管理器中,可以随时访问。
1-2.访问测试2(linux访问linux共享)
# smbclient -L //192.168.2.102 Enter root's password: Anonymous login successful # smbclient //192.168.2.102/smbzs -U zhangsan Enter zhangsan's password: Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-151.el6] smb: \> ls . D 0 Wed Feb 19 02:17:11 2014 .. D 0 Wed Feb 19 01:39:32 2014 zhangsan.txt 0 Wed Feb 19 01:41:53 2014 smb: \> q
六、挂载
1-1.临时挂载,以张三为例,下同。
# mount //192.168.2.102/smbzs /mnt/zhangsan/ -o username=zhangsan,password='123' # mount //查看 //192.168.2.102/smbzs on /mnt/zhangsan type cifs (rw,username=zhangsan,password=123)
1-2.永久挂载1(账户和密码可见,不安全)
# vim /etc/fstab //192.168.2.102/smbzs /mnt/zhangsan cifs defaults,username=zhangsan,password=123 0 0 # mount -a # mount //192.168.2.102/smbzs on /mnt/zhangsan type cifs (rw,use2name=zhangsan,password=123)
1-3.永久挂载2(账户和密码写入文件)
# vim /etc/samba/zhangsan 1 username=zhangsan 2 password=123 # chmod 600 /etc/samba/zhangsan # ll /etc/samba/zhangsan -rw-------. 1 root root 29 Feb 19 02:55 /etc/samba/zhangsan # vim /etc/fstab //192.168.2.102/smbzs /mnt/zhangsan cifs defaults,credentials=/etc/samba/zhangsan 0 0 # mount -a # mount //192.168.2.102/smbzs on /mnt/zhangsan type cifs (rw)