centos6.5搭建samba
一、服务概述
SMB/CIFS
SMB (Server Message Block,服务消息块)
CIFS(Common Internet FIle System,通用互联网文件系统)
Samba 服务通常用来做文件服务器,它可以实现 windows 与类 Unix
实现共享打印机,共享文件等功能,samba 底层也是 CIFS 协议。
二、安装需要的软件包
samba 服务端软件
samba-client 客户端软件
samba-common 提供服务端和客户端的公共组件
System-config-samba samba 的图形界面软件包
Samba-swat samba的web界面管理软件包
三、samba 服务相关进程及端口号
/usr/sbin/smbd 为客户机提供服务器中的共享资源的访问
/usr/sbin/nmbd 提供基于 NetBIOS 协议的主机名称解析
Samba 的脚本 /etc/init.d/smb
Samba 的端口:
Nmbd:(137 138)NetBIOS 协议
smbd: 139(SMB 协议) 445(CIFS 协议)
四、安装服务
1、挂载光盘
mount /dev/cdrom /mnt
2、安装软件包
rpm -ivh samba-3.6.9-151.el6.x86_64.rpm
rpm -ivh samba-client-3.6.9-151.el6.x86_64.rpm
rpm -ivh samba-common-3.6.9-151.el6.x86_64.rpm
3、启动服务
service smb start
4、查看端口是否存在
netstat -anpt |grep smb
5.samba配置文件讲解
samba 服务的主配置文件/etc/samba/smb.conf 主要由两部分组成:
(1)Global Settings 全局参数设置 该设置都是与 Samba 服务整体运行环境有关的选项,它的设置项目是针对所有共享资源的 。
[global] 全局设置,里面的配置信息对整个服务器都生效
Workgroup = MYGROUP 工作组的名字
Server string = Samba Server Version %v 对 samba 的描述信息
; netbios name = MYSERVER
;interfaces=lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13.
注意,关于 samba 服务的 IP 的表示方法有点特殊,只需要写出网络位,主机位省略。127.0.0.0 写成 127.
192.168.12.0 写成 192.168.12.
security = user #Samba 的安全模式
passdb backend = tdbsam
关于 samba 的五种安全模式:
Share 允许匿名访问
User 需要用户名和密码认证,认证信息来自于 samba 服务本身
Domain 认证来自于网络中另一台计算机
Server 和 domain 一样
Ads 使用微软的 AD 来认证
(2)Share Definitions 共享目录 该设置针对的是共享目录个别的设置,只对当前的共享资源起作用。
[homes]
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
这里有一段homes的配置片段,这段配置需要注释掉,否则在我们共享完目录后,会连用户的家目录一起显示出来。
[test] 这是共享的名字,也就是你从windows登录到共享服务器后看到的名字。
comment = Public Stuff #共享描述
path = /gongxiang #这时你共享的路径
public = no #等于yes的时候表示所有人可以看到gongxiang这个目录里面的东西。等于no的时,所有人不能看到gongxiang这个目录,需要用户名和密码才能看到。
read only = no #是否有写权限 no 代表有写权限
valid users = test1,test2
#有效的用户,就是能通过验证的用户,但是只有写权限。@组名表示授权一个组
write list = test1 #具有写权限的用户。
directory mask = 0755 #共享用户上传文件的权限
create mask = 0644 #创建子目录的权限
特别注意:在配置某个共享文件需要用户验证用户的时候,要是要配置写权限,配置文件和chmod 777 要同时开启,才能生效。读权限只要配置器其中一个改成读就可以了。
五、实现匿名用户访问
创建测试文件
mkdir /gongxiang
1、将samba的安全级别改为share 即:
vim /etc/samba/smb.conf
security = share
2、设置共享目录
[test]
comment = testfile
path = /gongxiang
public = yes
read only = no
3、访问测试文件
你的samba的服务器是多少,访问的IP就写多少
图1
图2
然后就可以再test目录下创建文件了。
六、实现访问验证登陆
1、将samba的安全级别改为share 即:
vim /etc/samba/smb.conf
security = user
2、设置共享目录权限
[test]
comment = testfile
path = /gongxiang
public = no
#read only = no 这一条配置可以去掉
valid users = a,b 仅允许哪些用户对该目录有操作的权限,默认也只有 r 的权限。其他用户没有任何权限。
write list = b 哪些用户可以有写权限
重启服务
service smb restart
3、创建共享用户
为了区别linux主机中系统用户,通常将用于访问samba共享资源的用户成为共享用户。Samba服务器使用独立的共享账号数据文件,其中的账号名称必须有与它同名的系统用户相对应。共享用户的密码和系统用的密码可以不一致。
(1)创建系统用户
useradd -M -S /sbin/nologin a
useradd -M -S /sbin/nologin b
(2)创建系统用户对应的samba共享用户
pdbedit -au a
pdbedit -au b
删除的用户,命令如下
pdbedit -xu 用户名
(3)查看samba系统用户
[root@Centos2 home]# pdbedit -L
a:505:
b:506:
测试登陆
图1
图2
注意:在windows中用某一用户访问过samba服务器后,登陆的用户会有验证缓存,所以切换用户访问的时候需要清除缓存。命令如下
在windwos的命令行提示符中输入:
net use * /del 即可清除缓存
需要多清楚两遍
在次访问的时候需要手动输入访问地址:
\\samba服务器的IP地址
如果还有缓存的话,重启解决
七、实现虚拟用户访问
共享账号映射(别名)
它可以将一个共享用户映射成多个不同的用户,这样我们就可以通过共享用户的别名和密码就能访问授权的资源了。保证了系统安全性。
(1)samba共享用户的映射配置文件在/etc/samba/smbusers
vim /etc/samba/smbusers
格式如下:
共享用户名 = 别名1 别名2 别名3
例如: a = test1 test2 test3
(2)vim /etc/smb/smb.conf
在全局配置里添加一条
username map = /etc/samba/smbusers
重启服务
service smb restart
注意:在windows中用某一用户访问过samba服务器后,登陆的用户会有验证缓存,所以切换用户访问的时候需要清除缓存。命令如下
在windwos的命令行提示符中输入:
net use * /del 即可清除缓存
需要多清楚两遍
在次访问的时候需要手动输入访问地址:
\\samba服务器的IP地址
如果还有缓存的话,重启解决
(3).访问地址限制
在samba.conf 中的全局配置中配置
hosts allow = 192.168.3.1 或者是 hosts deny = 192.168.3.1
访问地址限制一般用于全局配置部分,也可以用于某个具体的共享配置段部分。限制对象可以是主机名、ip地址或者 是网络段地址(省去主机位部分),多个地址之间以逗号或是空格分隔。