samba配置

Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。

运行环境

服务端:CentOS 6.3 X86_64 ip: 192.168.1.8

客户端:Microsoft Professional XP ip: 192.168.1.5

 

配置过程:

确定系统是否安装了samba, 执行rpm –qa|grep samba

没有安装的,可执行yum –y install samba 安装

samba具有两个进程: smbd和nmbd;smbd监听TCP 139, 处理文件共享和用户验证,必须启动,

不然samba不能使用;nmbd 监听 UDP 137 138, 主要处理浏览共享和计算机名称解析, 不一定要启动。

 

配置文件smb.conf

包括四个设置段:

[global] 设置全局环境选项

[homes] 每个用户宿主目录共享设置(注意,homes不是指目录)

[printers] 设置打印机共享,这个用的很少,可以注释掉。

[sharefiles] 设置文件共享,这个名称可以是自己随便写的的,每一段可以作为一个共享目录。

 

[global]段的主要选项:

Workgroup = 表示指定的工作组或域

Server string = 描述信息,显示的就是windows客户端访问samba窗口的描述。

Security = 指定安全模式。

Share 无权限验证。

User 缺省,推荐,由Linux samba服务器验证。

所以服务器端肯定要设置用户名和密码。

Server 第三方主机验证。

Domain 第三方主机验证(第三方必须是Windows域控制器)

hosts allow(也可以是deny)= 如果这个选项注释掉了,则表示所有的主机都可以访问。

如: hosts allow = 127. 172.16. 192.168.12. 网段的格式就是这样的。也可以写具体的IP。

 

[homes]字段主要选项

comment = 这里都是一些描述信息。

browseable = no 指的是用户的宿主目录是否可见。若为yes,则某用户进入samba后,

所有的用户宿主目录都可见,但除了自己的宿主目录外,所有的宿主目录都进不去,

因为不具有其他用户的权限。若设置为no ,则除了自己的宿主目录外,所有的用户目

录均不可见(隐藏的),即不能访问的目录是不可见。

writable = yes yes表示可写的,no 表示只读的。

valid user = xxxxx%s 有效用户,这个默认是注释掉的,%表示匹配每个用户。

valid users = 这个默认也是注释掉的。

所以要根据共享的需要设置[homes]字段。

IP地址。 如果只禁止某几台主机访问,可以使用 hosts deny =

Log file = 指定日志文件存放的位置。

Max log size = 指定日志文件的大小。

 

使用samba

关闭防火墙的一些应用。

对于 iptables,执行 iptables –F

对于 SElinux ,执行 setsebool –P samba_enable_home_dir on , 配置宿主目录具有读写权限。

 

在系统添加用户zbw,并给zbw设置samba的验证密码。

useradd zbw

passwd zbw 输入两遍密码,创建成功。

smbpasswd –a zbw 输入两遍密码,samba的验证密码设置成功。

 

执行 service smbd start 启动服务

现在可以正常连接samba服务器,但是访问宿主目录时候,提示没有权限。这是SElinux的问题。

执行setsebool –P samba_enable_home_dirs on 开启宿主目录的访问权限 如下所示:

这样可正常进入宿主目录了,并且能新建文件和目录,说明对宿主目录具有可写权限。

如果觉得不方便,可右击宿主目录zbw ,选择将其映射至本机,此后对zbw目录的资源

存取就和本地磁盘存取一样方便,如下:

至此单用户 samba 服务配置成功。

Leave a Reply