第2章 Samba服务
2.1 Samba原理
2.1.3 Samba工作原理
在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口,后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。
Samba服务是由两个进程组成,分别是nmbd和smbd。
nmbd:其功能是进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。
smbd:其主要功能就是用来管理Samba服务器上的共享目录、打印机等,主要是针对网络上的共享资源进行管理的服务。当要访问服务器时,要查找共享文件,这时就要依靠smbd这个进程来管理数据传输
2.3 Samba常规服务器配置
2.3.1 主要配置文件smb.conf
Global Settings设置为全局变量区域,全局变量就是说我们只要在global时进行设置,那么该设置项目就是针对所有共享资源生效.
Share Definitions共享服务的定义
设置共享名 [共享名]
共享资源描述 comment = 备注信息
共享路径 path = 绝对地址路径
设置匿名访问 public = yes #允许匿名访问 public = no #禁止匿名访问
设置访问用户 valid users = 用户名 valid users = @组名
设置目录只读 readonly = yes #只读 readonly = no #读写
设置目录可写 writable = yes #读写 writable = no #只读 write list = 用户名 write list = @组名
注意:
[homes]为特殊共享目录,表示用户主目录。
[printers]表示共享打印机。
2.3.2 Samba服务日志文件
log file = /var/log/samba/%m.log
samba服务的日志文件默认存放在/var/log/samba/中
nmbd.log记录nmbd进程的解析信息。
smbd.log记录用户访问samba服务器的问题,以及服务器本身的错误信息,可以通过该文件获得大部分的samba维护信息。
2.3.3 Samba服务密码文件
/etc/samba/smbpasswd
samba帐号并不能直接建立,需要先建立Linux同名的系统帐号。
smbpasswd -a 用户名
samba启用了tdbsam验证,/etc/samba目录下将没有smbpasswd文件
smb.conf文件中注释掉passdb backend = tdbsam 一行,加上smb passwd file = /etc/samba/smbpasswd,然后保存退出。
2.3.4 Samba的启动与停止
chkconfig --level 3 smb . #运行级别3自动加载
chkconfig --level 3 smb off #运行级别3不自动加载
ntsysv
2.3.5 share服务器实例及详解
(1).设置samba服务器工作组名为Workgroup
(2).添加samba服务器注释信息为"File Server"
(3).设置samba安全级别为share模式,允许用户匿名访问
[global]
workgroup = Workgroup #设置samba服务器工作组名为Workgroup
server string = File Server #添加samba服务器注释信息为"File Server"
; 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.
# logs split per machine
; log file = /var/log/samba/%m.log
# max 50KB per log file, then rotate
; max log size = 50
security = share #设置samba安全级别为share模式,允许用户匿名访问
; passdb backend = tdbsam
smb passwd file = /etc/samba/smbpasswd
(4).设置共享目录的共享名为public
(5).设置共享目录的绝对路径为/share
(6).最后我们设置允许匿名访问
[public]
comment = public
path = /share
public = yes
2.4 Samba高级服务器配置
2.4.1 用户账号映射
编辑主配置文件/etc/samba/smb.conf
在global下添加一行字段username map = /etc/samba/smbusers开启用户帐号映射功能
编辑/etc/samba/smbusers
smbusers文件保存帐号映射关系,其有固定格式:
samba帐号 = 虚拟帐号(映射帐号)
强烈建议不要将samba用户的密码与本地系统用户的密码设置成一样哈,可以避免非法用户使用samba帐号登录系统非法破坏
2.4.2 客户端访问控制
hosts deny = 192.168.0. 表示禁止所有来自192.168.0.0/24网段的IP地址访问
hosts allow = 192.168.0.24 表示允许192.168.0.24这个IP地址访问
当需要输入多个网段IP地址的时候,需要使用“空格”符号隔开。
2.4.4 Samba的隐藏共享
browseable = no表示隐藏该目录
(1)建立独立配置文件
cp /etc/samba/smb.conf /etc/samba/smb.conf.username
(2)编辑smb.conf主配置文件
在[global]中加入config file = /etc/samba/smb.conf.%U
(3)编辑smb.conf.username独立配置文件
2.5 Samba客户端配置
2.5.1 Linux客户端访问Samba共享
smbclient命令
列出目标主机共享目录列表
smbclient命令格式:smbclient -L 目标IP地址或主机名 -U 登录用户名%密码
smbclient命令行共享访问模式命令格式:
smbclient //目标IP地址或主机名/共享目录 -U 用户名%密码
mount命令挂载共享目录格式:
mount -t cifs //目标IP地址或主机名/共享目录名称 挂载点 -o username=用户名
cifs就是samba所使用的文件系统
2.8 Samba排错
使用testparm命令检查
使用ping命令测试
使用smbclient命令进行测试
阅读(1360) | 评论(0) | 转发(0) |