一、Samba服务基础
1. 服务程序包
- 服务端软件 samba
- 客户端软件 samba-client
- 提供服务端和客户端公共组 samba-common
- 提供Web接口图形管理程序软件 samba-swat
2. 服务程序组件
- Samba服务器提供smbd、nmbd两个服务;
- smbd负责为客户机提供服务器中共享资源(目录和文件等)的访问;
- nmbd负责提供基于NetBIOS协议的主机名称解析,以便为Windows网络中的主机进行查询服务。
- smbd监听TCP协议139端口(SMB协议)、445端口(CIFS协议),nmbd监听UDP协议137-138端口(NetBIOS协议)
3. 主配置文件smb.conf
[root@localhost ~]# grep -v "#" /etc/samba/smb.conf |grep -v ";" | awk NF
# 全局设置
[global]
# 设置服务器器所在工作组名称,如:Windows主机默认工作组名“WORKGROUP”
workgroup = MYGROUP
# 设置服务器的说明文字,用于描述Samba服务器
server string = Samba Server Version %v
# 设置Samba服务器的日志文件
log file = /var/log/samba/log.%m
max log size = 50
# 设置服务器的安全级别分别是:share(匿名访问)、user(本服务器验证用户名及密码)、server(指定另一台服务器来验证用户名及密码)、domain(Windows域控制器验证用户名及密码)
security = user
# 设置共享帐户文件类型,默认tdbsam(TDB数据库文件)。若网络内拥有LDAP目录认证,可改为ldapsam数据库文件;若兼容旧版的Samba密码文件,也可将类型设为smbpasswd
passdb backend = tdbsam
load printers = yes
cups options = raw
# 宿主目录共享设置:设置Linux用户的默认共享,对应用户的宿主目录。
[homes]
# 设置对应共享目录的注释、说明信息
comment = Home Directories
browseable = no
writable = yes
# 打印机共享设置:需共享打印机设备,可以在这部分进行配置。
[printers]
comment = All Printers
# 设置对应共享目录在服务器中的文件夹路径
path = /var/spool/samba
# 设置该共享目录在“网上邻居”中是否可见,设为no相当于隐藏共享目录
browseable = no
# 设置是否所有人都可以访问共享目录,与“public”配置项的作用相同
guest ok = no
# 设置该共享目录是否可写,与“read only”配置项作用相反
writable = no
# 是否启动打印服务
printable = yes
配置文件检查工具——testparm
二、构建文件共享服务器实例
1. 可匿名访问的共享
vim /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
security = share
[rhel7]
comment = RHEL 6.10 DVD directory.
path = /media
public = yes
read only = yes
2. 用户验证共享
# 建立Samba用户数据库
useradd test # 先添加系统用户test
pdbedit -a -u test # 在添加共享用户test,-a添加,-u指定用户名(可省略),等价于smbpasswd -a test
pdbedit -L # 列出所有Samba用户
pdbedit -vL test # 只列出test用户详细信息
pdbedit -x -u test # 删除共享用户test,-x删除
# 用户访问授权
useradd test1
useradd test2
pdbedit -a -u test1
pdbedit -a -u test2
mkdir /opt/myapp
vim /etc/samba/smb.conf
[global]
security = user
[myapp]
comment = MyApp
path = /opt/myapp
public = no
read only = yes
valid users = test1, test2
write list = test2
# 目录访问授权
chmod 777 /opt/myapp
vim /etc/samba/smb.conf
[myapp]
directory mask = 0755
create mask = 0644
3. 用户别名及访问地址限制
# 用户别名设置
vim /etc/samba/smbusers
test1 = bieming1 alias1
test2 = bieming2 alias2
vim /etc/samba/smb.conf
[global]
username map = /etc/samba/smbusers
# 访问地址限制
# hosts allow仅允许,hosts deny仅拒绝
# 10.10.10.0/24 172.16.0.0/16仅允许这2个网段访问Samba服务器,如下配置
vim /etc/samba/smb.conf
[global]
hosts allow = 10.10.10. 172.16.
service smb reload
4. 访问共享文件夹
# 登录访问Samba
smbclient -U test1 //10.10.10.10/myapp
# mount挂载共享文件夹
mount -o username=test1 //10.10.10.10/myapp /mnt
三、Web图形化管理工具samba-swat
# 配置文件修改成如下:
vim /etc/xinetd.d/swat
service swat
{
port = 901
socket_type = stream
wait = no
only_from = 0.0.0.0
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
}
vim /etc/services
swat 901/tcp smpnameres # Samba Web Administration Tool
service xinetd restart # 重启xinetd
chkconfig --list |grep swat # 使用chkconfig查看swat状态
Web图形化管理工具,参考博文:http://blog.51cto.com/yuanbin/117105
网友评论