天天看点

配置Samba服务

Samba是实现Windows系统和Linux系统的文件共享服务。

一、Samba的配置文件

首先是安装Samba

Samba的配置文件是/etc/samba/smb.conf,默认未注释的部分如下:

注:主要有以上三个部分:[global], [homes], [printers]

[global] 定义全局的配置,workgroup用来定义工作组,一般情况下,需要我们把这里的MYGROUP改成WORKGROUP(windows默认的工作组名字)。

●security = user  //这里指定samba的安全等级。关于安全等级有四种:

    (1)share:用户不需要账户及密码即可登录samba服务器

    (2)user:由提供服务的samba服务器负责检查账户及密码(默认)

    (3)server:检查账户及密码的工作由另一台windows或samba服务器负责

    (4)domain:指定windows域控制服务器来验证用户的账户及密码。

●passdb backend = tdbsam  //passdb backend(用户后台),samba有三种用户后台:smbpasswd, tdbsam和ldapsam.

    (1)smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。

    (2)tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用 smbpasswd -a 创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:

    (3)ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置 “passdb backend =ldapsam:ldap://LDAP Server”

●load printers 和 cups options 两个参数用来设置打印机相关。

除了这些参数外,还有几个参数:

●netbios name = MYSERVER               //设置出现在网上邻居中的主机名

●hosts allow = 127. 192.168.12. 192.168.13.   //用来设置允许的主机,如果在前面加 ”;” 则表示允许所有主机

●log file = /var/log/samba/%m.log     //定义samba的日志,这里的%m是上面的netbios name

●max log size = 50               //指定日志的最大容量,单位是K

[homes] 该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。

[printers] 该部分内容设置打印机共享。

二、Samba试验

下面我们来进行试验,不过实验之前要先关闭iptables和selinux,否则很有可能试验失败。

实验一

要求:共享一个目录,任何人都可以访问,即不用输入密码就可访问,要求只读。

1、打开Samba的配置文件

2、创建测试目录

3、启动Samba服务

也可以用testparm命令测试smb.conf文件是否配置正确:

4、测试

(1)在Windows下测试:

win+r 输入 \\192.168.0.109 就可以看到如下图所示:

<a href="http://s3.51cto.com/wyfs02/M02/73/1B/wKiom1X1FYbCClp7AABO-RRKVJ8582.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/73/18/wKioL1X1F7jybynpAACT6fh-ReU039.jpg" target="_blank"></a>

你可以试着修改下文件,或者新建文件,都会发现没有权限,只能读。

(2)在Linux下测试:

客户机上要安装cifs-utils

挂载到/opt/目录下

<a href="http://s3.51cto.com/wyfs02/M02/73/1B/wKiom1X1G-HRZM4iAAEYVoSXdjg739.jpg" target="_blank"></a>

实验二

要求:共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写。

3、添加用户

因为在[globa]中 “passdb backend = tdbsam”, 所以要使用 pdbedit 来增加用户,注意添加的用户必须在系统中存在,所以需要先创建系统账号

重启Samba服务

注意:pdbedit有什么命令参数,常用的还有 -L:列出Samba账号,-x:删除某个Samba账号

win+r 输入 \\192.168.0.109 就可以看到要输入账号密码的提示框,输入正确后可以进入,接着我们可以对文件夹以及文件进行修改。

<a href="http://s3.51cto.com/wyfs02/M02/73/1C/wKiom1X1JtPQ7t2FAABCsGZSWq0516.jpg" target="_blank"></a>

注意:从上面我们可以看到会生成一个以用户名为命名的文件夹,因为我们没有把[home]那个模块给注释掉。

<a href="http://s3.51cto.com/wyfs02/M02/73/1A/wKioL1X1LezgcgFWAADAnNL69NE272.jpg" target="_blank"></a>

注释掉后重启Samba服务,我们再查看下就会发现user1目录不存在了。

<a href="http://s3.51cto.com/wyfs02/M01/73/1C/wKiom1X1J6ODt1ayAAEWNu3wMN4495.jpg" target="_blank"></a>

查看下,并且我们可以/opt/目录进行新建文件或者文件夹的操作。

<a href="http://s3.51cto.com/wyfs02/M00/73/1C/wKiom1X1KXPBbd3BAABLPok14iQ351.jpg" target="_blank"></a>

另外在Linux下还有一种方式访问,就是在客户端安装samba-client包,然后用smbclient命令访问。

<a href="http://s3.51cto.com/wyfs02/M02/73/1C/wKiom1X1KPjSkEo1AAHtQV35lVw769.jpg" target="_blank"></a>

smb也有很多命令,大家可以试试。

实验三

要求:共享两个目录,public与private,其中public目录可匿名访问,任何人可以读写;private目录需要验证用户名密码才能够访问。但都是只读。

注:因为配置文件中定义过文件的权限,故不用再定义

3、创建用户

试验二已经定义过,我们就不用再定义。可查看下Samba的所有账号:

win+r 输入\\192.168.0.109 进入后,可以看到两个文件夹。

public目录可直接访问,private目录要输入账号密码验证后才可以进入;不过都对这两个文件只读。

<a href="http://s3.51cto.com/wyfs02/M01/73/27/wKioL1X2zzDh8NJWAABSWe1hZs4430.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/73/2B/wKiom1X2zPyxAY_cAAFCaBo22V4943.jpg" target="_blank"></a>

直接回车,不用输入密码。

参考拓展

<a href="http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html" target="_blank">http://www.cnblogs.com/mchina/archive/2012/12/18/2816717.html</a>

<a href="http://yuanbin.blog.51cto.com/363003/117105" target="_blank">http://yuanbin.blog.51cto.com/363003/117105</a>

      本文转自 M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1694296,如需转载请自行联系原作者