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 里面分为两大类设定,第一类就是全局设定,第二类就是共享的设定了。下面是全局设定的部分截图:
看上去注释符号是;不过用#也可以,里面还可以定义黑名单:hosts deny,如果使用hosts allow代表白名单允许的主机!
上边的是定义smaba日志的!
上面定义了关于samba安全认证的相关选项,具体的选项上面都有注释介绍!
接下来看看共享设定的相关设置:
例如上面首先定义了两个共享的例子,在下面还有一个我自己的自定义设定:
其中comment代表注释信息;path为共享位置;writable为是否可写;write list代表可写的用户或组;public是否匿名账号访问?
好了根据以上信息我们得创建两个用户并且把组设定为cookies然后创建共享文件:
首先创建共享文件:直接使用mkdir /var/share即可
接下来创建两个用户,当然我这边示例没给系统密码,不过你可以给哦!
系统用户创建完毕,然后我们检查一下刚刚的配置文件有没有错误:使用testparm检查一下:
额,竟然有警告,上面数取的名字太长,在windows9X等等地方不兼容之类的,所以我又把名字改为test:
改好之后没有报错,检查OK然后我们启动服务脚本,脚本一共有两个分别是nmb和smb在/etc/rc.d/init.d下:
看到我用红线画出的tcp|udp端口则表示启动成功,我准备打开windows虚拟机进行测试…不对我没还没有设置samba的用户账户,下面就来设置:
上图显示我将samba的两个用户添加上去分别输入了登陆samba的密码!然后我们就在windows端设置一下:
直接在这边使用\\输入地址随后输入密码即可:
随后创建一个文件提示错误:
这个问题百思不得其解,最后才想到在/var/share的权限没有改,或者说是属组没有修改,只需将属组改为cookies然后添加一个写权限即可。或者不安全的做法改为o+w也行!随后我再修改了一下配置文件中定义共享的设置将writetable改为no最后实现不让公共账号写,然后关闭public!这样做好以后你的账号以后就能进行读写操作了,就和你本地硬盘一样!
不过话说在windows进行挂在其实很方便,对共享的文件夹右键->映射网络启动器->给一个盘符就当作#盘使用了。
接下来看看Linux如何使用和挂载samba共享:
作为客户端只需要安装samba-client即可!yum install samba-client
随后首先我们需要探测共享:
使用smbclient,其中-L后面写共享地址然后再-U填入用户名即可。我刚刚写的comment中已经显示thank you for use samba了!接下来我们访问共享:
访问共享需要写入共享地址和名称!记住要名称哦!windows是不需要的!进去之后命令和lftp类似详细使用help查看!
最后就是使用挂载了:
在username=后面写入用户名再,password=写入密码,然后将远程主机的地址和共享名写入,并填写挂载至哪里即可!挂载好以后进目录就能查看文件了!
好了关于samba的配置和介绍到这边就结束了!
Comments