一、了解samba服务; 1.概念:实现windows和linux系统之间实现smb协议的一款开源软件,是c/s结构。 2.SMB(服务消息块协议):是一种在局域网上共享文件和打印机的通信协议,提供不同系统之间共享文件或打印机。 3.NetBios(网络基本输入输出系统协议):负责数据传输过程中的主机解析。 4.CIFS(通用网络文件系统):CIFS 是针对 Microsoft Windows 操作系统的本地网络文件系统。 Linux 系统可以挂载和访 问CIFS 文件共享 , 如同常见的网络文件系统一样。 5.samba的作用:共享文件和打印机,支持将linux加入到windows的AD中;实现linux和windows之间的访问。 6.实现原理:Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限 设置。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用协议的137、138及TCP协议的139端口, 后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。 客户端---------(1)---------> 服务端---------(2)---------->smb.conf主配置文件 客户端-------- (4)----------> 服务端----------(3)---------->日志文件 二、samba软件包的组成: 1.samba软件组成:samba-common(公共组件)、samba-client(客户端)、samba(主程序)、samba-winbind(允许unix 系统利用windowsAD的用户信息); 2.samba服务的程序组件: smb:提供共享访问,管理文件传输,端口tcp139号(smb协议)、tcp445号(cifs协议) nmb:负责NetBIOS协议(负责跨平台实现共享)解析,端口udp137、138号 三、理解samba的主配置文件:/etc/samba/smb.conf 1.主配置文件的格式:#表示注释、;表示配置的样例、[global]全局设置、[homes]家目录共享设置、[printers]打印机共享设 置; 四、搭建匿名和认证的共享 a.配置网络:如ip、网关、主机名、关闭selinux、关闭iptables; b.安装samba:推荐使用yum安装; c.修改配置文件:smb.conf主配置文件,根据需求进行修改;smbusers共享账号的别名文件;一个smb用户可以映射到多 个名称; d.管理samba用户: pdbedit -a -u 用户 ##添加系统用户到smb用户 pdbedit -x -u 用户 ##删除系统用户在smb用户中 pdbedit -L ##查看smb用户 e.启动服务: /etc/init.d/smb start ##启动共享 /etc/init.d/nmb start ##启动netBOIS服务 f.访问测试: 五、samba服务的访问: 1.smbclient: yum -y install samba-client ##安装软件包 smbclient -L ip地址 -U 用户 ##列出共享 smbclient -U 用户 //ip地址/共享名 ##访问匿名共享时,不需要指定-U 2.mount: yum -y install cifs-utiles ##安装cifs工具 mount -o username=用户名 //ip/共享名 挂载点 ##访问认证共享 mount -o username=* //ip/共享名 挂载点 ##访问匿名共享 3.windows客户端共享的原理: net share ##管理本地共享 net use ##管理共享映射 net use 共享路径 /delete ##删除共享缓存 inetcpl.cpl ##打开inet选项,删除访问记录

配置文件方以及
smb共享实现linux和windows间共享:

匿名共享: 1.设置网络参数和基础环境: [root@smb ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR=00:0C:29:68:b1:0f NM_CONTROLLED=no ONBOOT=yes BOOTPROTO=static IPADDR=192.168.100.150 NETMASK=255.255.255.0 GATEWAY=192.168.100.100 DNS1=192.168.100.100 :wq

[root@smb ~]# vi /etc/sysconfig/network HOSTNAME=smb.linuxfan.cn :wq [root@smb ~]# vi /etc/selinux/config SELINUX=disabled :wq

[root@smb ~]# chkconfig iptables off ##设置防火墙开机不启动 [root@smb ~]# reboot ##重启主机

2.安装samba软件: [root@smb ~]# mount /dev/cdrom /mnt ##挂载光盘到/mnt这个目录下 [root@smb ~]# rm -rf /etc/yum.repos.d/* [root@smb ~]# vi /etc/yum.repos.d/centos.repo ##编辑yum配置文件 [local] name=local baseurl=file:///mnt enabled=1 gpgcheck=0 :wq [root@smb ~]# yum -y install samba ##安装samba软件包

3.修改/etc/samba/smb.conf定制功能: [root@smb ~]# vi /etc/samba/smb.conf ##删除注释:%g /^#/d 删除空行:%g/^$/d 删除样例行:%g /^;/d 删除多余空行;修改如下: [global]

    workgroup = MYGROUP
	##指定服务器所在的工作组
    server string = Samba Server Version %v
	##服务器的描述
    log file = /var/log/samba/log.%m
	##日志文件
    max log size = 50
	##最大日志大小
    security = share
	##设置共享类型
    passdb backend = tdbsam
	##服务用户后台类型
    load printers = yes
	##是否共享打印机
    cups options = raw
	##设置共享打印机类型

[public] comment = Public Stuff ##描述 path = /opt/share ##设置共享的路径 public = yes ##设置是否公开共享 writable = yes ##设置是否可写,即上传文件 printable = no ##共享打印机设置 :wq [root@smb ~]# mkdir /opt/share [root@smb ~]# touch /opt/share/a.file [root@smb ~]# chmod 777 /opt/share [root@smb ~]# testparm ##测试配置是否有误

4.启动服务: [root@smb ~]# /etc/init.d/smb start [root@smb ~]# /etc/init.d/nmb start [root@smb ~]# chkconfig smb on [root@smb ~]# netstat -utpln |grep mb ##TCP:139,445/UDP:137,138查看端口

5.客户端测试: windows: \192.168.100.150\public linux: 第一种方式: 挂载光盘,配置yum源; yum -y install cifs* mount -o cifs //192.168.100.150/public /benet/ ##匿名共享提示输入密码直接回车 ls /benet ##验证 第二种方式: 挂载光盘,配置yum源; yum -y install samba-client smbclient //192.168.100.150/public ##登陆 smb: > ##ls查看,get 文件名 下载 ,put 文件名 上传 ,quit退出

用户认证的共享:注意匿名和认证选一个 1.创建用户: useradd u01 useradd u02 pdbedit -a u01 ##将系统用户添加为smb用户 pdbedit -a u02 pdbedit -L ##查看smb用户 2.修改配置文件: [root@smb ~]# vi /etc/samba/smb.conf [global]

    workgroup = MYGROUP
    server string = Samba Server Version %v
    log file = /var/log/samba/log.%m
    max log size = 50
    security = user    ##用户认证的共享,将share改为user
    passdb backend = tdbsam
    load printers = yes
    cups options = raw

[public] comment = Public Stuff path = /opt/share public = no ##共享非公开 writable = no ##默认不可以写 valid users = u01, u02 ##允许访问的用户 write list = u01 ##有写入权限的用户 :wq testparm ##测试配置是否有误 /etc/init.d/smb restart ##重启服务 netstat -utpln |grep mb ##查看端口使用情况 3.测试: windows主机: \192.168.100.150 登陆用户名密码测试读取写入权限 cmd中net use 查看保存的链接信息 net use * /del 删除保存的连接信息 再次访问\192.168.100.150测试另外用户

linux:客户机必须配置ip,能够与samba服务器处于同一网络 第一种方式: mount -o username=u01 //192.168.100.150/public /mnt cd /mnt touch b.file ls 第二种方式: smbclient -U u02 //192.168.100.150/public