天天看点

samba文件共享服务

一、了解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选项,删除访问记录

匿名共享:

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

[root@smb ~]# vi /etc/selinux/config

selinux=disabled

[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

[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]

[public]

comment = public stuff

##描述

path = /opt/share

##设置共享的路径

public = yes

##设置是否公开共享

writable = yes

##设置是否可写,即上传文件

printable = no

##共享打印机设置

[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 -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

public = no ##共享非公开

writable = no ##默认不可以写

valid users = u01, u02 ##允许访问的用户

write list = u01 ##有写入权限的用户

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

继续阅读