什么是samba?以及基本配置!

samba?不知道的以为今天我打算讲如何跳巴西samba舞……当然我首先要说明我肯定不会跳samba,这次要讲的samba不是舞蹈而是linux上的一个贴心的应用程序!

有没有想过这么一个问题,想要在Linux、windows、unix内核之间互相传递文件与数据?当然很多人首先想到直接使用ftp即可,但是如果我想要进行对文件的挂载呢?就像吧这块硬盘的数据当作自己电脑上进行使用怎么办?所以在澳大利亚墨尔本大学的一个学生(大牛)自行开发了应用程序能够让三个内核之间进行文件系统的挂载。不过在早期不叫samba叫做smb(这是一种协议)由于不能起牛奶牌牛奶、冰激凌牌冰激凌所以加了两个a。叫做samba!

在samba中一共使用了三种协议:

  • smb:service message block 服务信息块
  • CIFS:commin internet file system 通用网络文件系统;CIFS监听在udp/137、138 tcp/139、445端口
  • NETBIOS:基于主机实现相互通信机制,最多15个字符

当然也对应了三种服务:

  • nmbd:netbios
  • smdb:cifs
  • windb: 用于实现将Linux主机加入活动目录(AD)中

介绍了这么都多理论和历史当然来点干活,如果配置samba让windows和linux之间互相挂载文件:


首先安装smaba,在linux中直接使用yum或者apt-get来安装,yum install smaba

随后主配置文件在/etc/samba/smb.conf 里面分为两大类设定,第一类就是全局设定,第二类就是共享的设定了。下面是全局设定的部分截图:

samba01

看上去注释符号是;不过用#也可以,里面还可以定义黑名单:hosts deny,如果使用hosts allow代表白名单允许的主机!

samba02

上边的是定义smaba日志的!

samba03

上面定义了关于samba安全认证的相关选项,具体的选项上面都有注释介绍!

接下来看看共享设定的相关设置:

samba04

例如上面首先定义了两个共享的例子,在下面还有一个我自己的自定义设定:

samba05

其中comment代表注释信息;path为共享位置;writable为是否可写;write list代表可写的用户或组;public是否匿名账号访问?

好了根据以上信息我们得创建两个用户并且把组设定为cookies然后创建共享文件:

首先创建共享文件:直接使用mkdir /var/share即可

接下来创建两个用户,当然我这边示例没给系统密码,不过你可以给哦!

samba06

系统用户创建完毕,然后我们检查一下刚刚的配置文件有没有错误:使用testparm检查一下:

samba07

额,竟然有警告,上面数取的名字太长,在windows9X等等地方不兼容之类的,所以我又把名字改为test:

samba08

改好之后没有报错,检查OK然后我们启动服务脚本,脚本一共有两个分别是nmb和smb在/etc/rc.d/init.d下:

samba09

看到我用红线画出的tcp|udp端口则表示启动成功,我准备打开windows虚拟机进行测试…不对我没还没有设置samba的用户账户,下面就来设置:

samba10

上图显示我将samba的两个用户添加上去分别输入了登陆samba的密码!然后我们就在windows端设置一下:

直接在这边使用\\输入地址随后输入密码即可:

samba11

samba12

随后创建一个文件提示错误:

samba13

这个问题百思不得其解,最后才想到在/var/share的权限没有改,或者说是属组没有修改,只需将属组改为cookies然后添加一个写权限即可。或者不安全的做法改为o+w也行!随后我再修改了一下配置文件中定义共享的设置将writetable改为no最后实现不让公共账号写,然后关闭public!这样做好以后你的账号以后就能进行读写操作了,就和你本地硬盘一样!

不过话说在windows进行挂在其实很方便,对共享的文件夹右键->映射网络启动器->给一个盘符就当作#盘使用了。

接下来看看Linux如何使用和挂载samba共享:

作为客户端只需要安装samba-client即可!yum install samba-client

随后首先我们需要探测共享:

samba14

使用smbclient,其中-L后面写共享地址然后再-U填入用户名即可。我刚刚写的comment中已经显示thank you for use samba了!接下来我们访问共享:

samba15

访问共享需要写入共享地址和名称!记住要名称哦!windows是不需要的!进去之后命令和lftp类似详细使用help查看!

最后就是使用挂载了:

samba16

在username=后面写入用户名再,password=写入密码,然后将远程主机的地址和共享名写入,并填写挂载至哪里即可!挂载好以后进目录就能查看文件了!

好了关于samba的配置和介绍到这边就结束了!

Comments

Leave a Reply

Your email address will not be published. Name and email are required