用惯了windows的共享,今天我们来试一试linux下的共享是如何实现的。其实二者之间的关系并不复杂,作为一门“正规”、“严谨”的技术,我们以后也没有必要天天拿着个U盘拷来拷去了。让我们来看看samba的妙用吧!

一、SAMBA服务部署

Samba服务器包括两个程序:
1、smbd:为客户机提供了服务器共享资源的访问
2、nmbd:提供了netbioS主机名称的解析  

1、samba安装

 samba是Linux系统集成的一个工具,在安装Linux的过程中用户可以选择安装。验证系统是否安装了samba可以通过如下命令进行查看:
rpm -qa |grep samba

RHEL5.7下的Samba服务器配置_windows

查看samba相关命令:
rpm –ql samba | head -20   (查看前20行)

2、samba配置

(1)linux使用samba访问windows共享文件夹

设置好windows上的共享文件夹:

RHEL5.7下的Samba服务器配置_RHEL5.7_02

在linux上查看共享文件夹,发现skins文件夹是存在的
smbclient –L 192.168.10.100

RHEL5.7下的Samba服务器配置_windows_03

以FTP的形式进入共享文件夹下载文件,注意administrator密码不能为空
smbclient //192.168.10.100/skins –U administrator

RHEL5.7下的Samba服务器配置_linux_04

下载TSET文件并查看,发现已经下载到root目录里了:

RHEL5.7下的Samba服务器配置_RHEL5.7_05

将共享目录直接挂载在文件夹下:
mount -t cifs -o username=administrator //192.168.10.100/skins /mnt/share

RHEL5.7下的Samba服务器配置_linux_06

卸载共享目录
umount /mnt/share

(2)windows使用samba访问linux共享文件夹


访问linux共享文件夹有多种方式,主要有user和share模式,看需要什么模式访问。如果是share模式则无需用户名密码即可访问,如果是user模式则首先要创建samba专门的用户名密码。用户名必须使用登陆系统的用户名,密码与登陆系统的密码无关,可随意设置。smbpasswd用来存储samba用户的密码,可在/etc/samba里查看。这里我们使用user模式进行访问。
 
创建账号
useradd user123
创建密码
smbpasswd -a user123
修改/etc/samba/smb.conf,在全局设置——————global————————下将用户组更改为与windows一致,以及允许的访问网段。

RHEL5.7下的Samba服务器配置_服务器配置_07
进入共享设置下——————share definition——————,将[public]路径改为共享文件夹的路径,设置为可写,但只允许user123账号写入。RHEL5.7下的Samba服务器配置_服务器配置_08
保存后退出,启动samba服务
service smb start
查看samba服务进程
ps–aux | grepmb
在windows下输入\\192.168.10.1 ,输入user123的账号和密码
RHEL5.7下的Samba服务器配置_linux_09
这时我们可以发现user123为主文件夹,有读写权限。但在public文件夹上却只有读的权限,没有写的权限,这是为什么呢?我们在linux下看下public的权限是怎么样的
ll  /public –d
RHEL5.7下的Samba服务器配置_windows_10
发现public文件夹只有root有写的权限,我们需要对其进行更改
chmod 777 /public
这时就可以使用user123账号在public文件夹里添加或更改文件了。创建一个名为USER的文件,在linux里查看,可以发现是user123创建的。
RHEL5.7下的Samba服务器配置_windows_11

 在windows工作组计算机里可以看到linux主机
RHEL5.7下的Samba服务器配置_服务器配置_12
RHEL5.7下的Samba服务器配置_RHEL5.7_13 

(3)linux使用samba访问linux共享文件夹

方法与访问windows类似
mount -t cifs -o username=user123 //192.168.10.1/public /mnt/share
 
卸载共享目录
umount /mnt/share
 
(4)samba web管理工具

使用swat以web界面的形式管理samba服务器
 
首先安装RPM包
rpm–ivh samba-swat-3.0.33-3.29.e15_6.2.i386.rpm
设置swat启动状态
chkconfig swat on
servicexinetd restart
在/etc/xinetd.d/swat中设置允许访问swat的客户主机地址。否则默认为127.0.0.1,只能本地访问。

RHEL5.7下的Samba服务器配置_linux_14

在windows上输入http://192.168.10.1:901,只能用root账号登陆,登陆成功后的界面如下:

RHEL5.7下的Samba服务器配置_RHEL5.7_15

好了,大功告成!!
总结:Samba是一个网络服务器,用于Linux和Windows共享文件之用。上面演示的利用samba服务实现Linux与Windows直接的文件共享,涉及了samba的设置几个重要方面。其实,在实际应用中我们可以根据自己的需要进一步深入设置,只有把配置文件和共享目录的权限结合起来,才能使Samba服务发挥更大的作用。