网络有很多samba服务配置的教程,但大多数都不怎么明白,这篇教程就是零基础起步,实现真正掌握samba服务器的配置和管理
一、 服务器端配置
(一) samba服务器安装
1. 服务查询
默认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分 ,为了对整个过程有一个完整的了解,在此先将这部分卸载掉。使用命令rpm -qa | grep samba ,默认情况下可以查询到两个已经存在的包:
samba-client-3.0.33-3.7.el5
samba-common-3.0.33-3.7.el5
2. 卸载Samba
用rpm -e 将两个包卸载掉。对于samba-common-3.0.33-3.7.el5,因为与其它rpm包之间存在依赖关系,所以必须加参数-f和--nodeps,-f是指强制,--nodeps是指不检查依赖关系,具体完整命令为:
rpm -e samba-common-3.0.33-3.7.el5 -f--nodeps
rpm-e samba-client-3.0.33-3.7.el5 -f --nodeps
3. 安装Samba
用以下命令安装:
rpm-ivh samba-3.0.33-3.29.el5_6.2.i386.rpm -f --nodeps
rpm-ivh samba-client-3.0.33-3.29.el5_6.2.i386.rpm -f --nodeps
rpm-ivh samba-common-3.0.33-3.29.el5_6.2.i386.rpm -f –nodeps
如果联网可以直接 yum installsamba 进行在线安装
安装完成后,使用命令rpm -qa | grep samba进行查询,发现搭建samba服务器所依赖的所有服务器都已经安装好了即可。
4. 配置smb.conf文件
Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf,文件中记录着大量的规则和共享信息,所以是samba服务非常重要的核心配置文件,完成samba服务器搭建的大部分主要配置都在该文件中进行。
(二) 服务配置
Samba服务器的工作原理是:客户端请求访问 ==> 查询主机配置文件smb.conf ==> 记录在日志文件中 ==> 客户端如果满足条件,允许访问
Samba一般放在/etc/samba目录中,主配置文件smb.conf
查看配置文件的详细信息ll /etc/samba/smb.conf
1. Smb.conf配置通用格式:设置工作组或者域名称workgroup=smilegroup
服务器描述:server string=samba server one
2. Samba安全模式设置:security=share samba
服务器共有五种:share、user、server、domain、ads
3. Share definition共享
(1) 设置共享名:/share 定义名为public
(2) 共享资源描述:comment=备注信息
(3) 共享路径:path=绝对路径
(4) 设置匿名访问:public=yes #允许匿名访问,反之亦然
(5) 设置访问用户:valid users=用户名 valid users=@组
(6) 设置目录只读:readonly=yes #只读 readonly=no #只写
(7) 设置目录可写:writeable=yes #读写 writeable=no #只读
Writelist=用户名 write list=@组名
4. Samaba服务日志文件
在/etc/samba/smb.conf文件中,log file为设置Samba日志的字段
log file=/var/log/samba/%m.log
日志文件存放在/var/log/samba/中
启动SMB服务:/etc/rc.d/init.d/smb start或者 service smb start
查看日志所有文件:ls -a /var/log/samba/
nmbd.log记录nmbd进程的解析信息。
smbd.log记录用户访问Samba服务器的问题,以及服务器本身的错误信息,可以通过该文件获得大部分的Samba维护信息。
5. Samba服务密码文件(用户名和密码存放路径/etc/samba/smbpasswd)
添加访问用户:smbpasswd -a username
用户无法添加问题
在smb.conf文件中注释掉passdb backend = tdbsam 一行,再另加一行:smb passwd file = /etc/samba/smbpasswd,然后保存退出即可。
使用cat /etc/samba/smbpasswd 命令查看smbpasswd文件的内容。
6. Samba虚拟账户
Vim /etc/samaba/smbusers
samba账号=虚拟账号(映射账号)
7. 客户端访问控制
(1) IP限制 host allow IP #允许此网段IP访问
host deny IP#禁止此网段IP访问
(2) 域名限制 hosts deny = .sale.com .net client1
表示禁止.sale.com域和.net域及主机名为client1的客户端访问public这个共享目录
域名和域名之间或域名和主机名之间需要使用“空格”符号隔开。
(3) 使用通配符进行访问限制
hosts deny = ALL
hosts allow = root
表示除了root,其他人一律不得访问
(4) 特殊情况
有时访问控制中IP地址冲突无法设置时,可以采用except进行限制
hosts allow = IP1 except IP2 IP3 表示允许网段1中主机访问,但禁止IP2&IP3进行访问
注:hosts allow和hosts deny如果设置在[global],表示对samba服务器全局生效;如果设置在目录里面,只对该目录生效
8. 隐藏共享
Browseable = no 表示隐藏该目录
9. 打印共享
依旧修改smb.conf文件
(1) Load printers 表示打印功能,改为yes
(2) 设置printers配置项即可
二、 Linux客户端访问
一共两种方法
1. Sambaclient命令
确保客户机安装samba-client
smbclient -L 目标IP地址或主机名 -U 登录用户名%密码
smbclient -L 目标IP地址或主机名 #匿名访问,直接回车即可
2. mount挂载查看
mount -t cifs //目标IP或主机名/共享目录名称 挂载点 –o username=用户名
表示挂载该主机上共享目录**到挂载点目录下,cifs为samba所使用的文件系统
三、 Windows客户端访问
1. “运行“或者UNC访问
\\服务器IP或服务器主机名\共享目录
2. 映射网络驱动器访问
该文章为素心原创,转载请注明出处