samba服务简析

samba程序简介:
在介绍samba程序之前得先简单了解几款协议:
NetBIOS协议:NetBIOS协议(Network Basic Input/Output System),简单的理解,这个协议可以给局域网内的每台计算机赋予一个新的统一规则的名字---NetBIOS名,并且将这个名字解析为IP地址,实现信息通讯,主要作用还是局域网内部的消息通信和资源共享。

SMB协议:SMB协议(Server Message Block)是由微软开发的一种软件程序级的网络传输协议,基于NetBIOS,主要功用是使得一个网络上的机器共享计算机文件、打印机、串行端口和通讯等资源,使用C/S架构运行,主要作用在Windows平台。

CIFS协议:CIFS协议是公共的或开放的SMB协议版本,微软希望将这个而协议扩展到Internet上,成为Internet上计算机之间相互共享数据的一种标准,因此它将原有的SMB协议进行整理,重新命名为CIFS(Common Internet File System)。

samba是Linux和Unix平台的一款实现了SMB协议的软件,可以使得windows平台的主机也可以访问Linux和Unix平台主机共享出来的资源。

samba服务监听的协议端口有:
UDP的137-NetBIOS名字服务;nmbd
UDP的138-NetBIOS数据报服务
TCP的139-文件和打印共享;smbd
TCP的445-NetBIOS在Windows2000及以后版本使用此端口

samba程序的安装
如果系统没有自带samba程序,可配置yum源后,以下指令安装
[root@localhost ~]# yum -y install samba
安装samba程序时会安装四个程序包:
samba-client;samba服务作为客户端,连接其他服务器共享资源时用到此程序
samba-common;samba服务的公用包
samba-winbind;使服务器能够加入到windows的AD域中
samba-winbind-client;
samba服务
samba程序有两个服务脚本:
/etc/rc.d/init.d/nmb 启动nmb服务
/etc/rc.d/init.d/smb 启动smb服务
samba的主程序文件:
/usr/sbin/nmbd
/usr/sbin/smbd
samba的主配置文件:
/etc/samba/smb.conf
启动samba服务:
service nmb start
service smb start
可使用ss -tunl命令查看137和138端口都处于监听状态,说明samba服务启动成功

访问Windows平台的共享资源
当samba程序安装完成后就已经可以访问windows平台的共享资源:
使用smbclient命令
smbclient -L HOST -U USENAME
例:[root@localhost ~]# smbclient -L 172.16.20.2 -U nice/22

获取到共享信息后:
smbclient //HOST/shared_name -U USERNAME
例:smbclient //172.16.20.2/share/ -U nice/22

对于Windows平台的共享资源还可以使用挂载的方式访问:
mount -t cifs //HOST/shared_name /mount_point -o username="USERNAME",password="PASSWORD"
也可以不使用密码选项,直接回车,然后根据提示输入密码,提高安全性
例:

[root@localhost ~]# mount -t cifs //172.16.20.2/share/ /mnt -o username="nice\22"
Enter=[NICE] OS=[Windows 10 Enterprise 14393] Server=[Windows 10 Enterprise 6.3]

Windows平台访问Linux共享资源配制

[root@localhost ~]# vim /etc/samba/smb.conf
workgroup = WORKGROUP

由于windows主机默认属于WORKGROUP工作组,而Linux的smb.conf配制文件中的设定是MyGroup,工作组不一样,是无法访问到共享资源的,所以需要修改为WORKGROUP
且访问samba服务时需要用到用户名密码,这里的用户就是系统用户,存储在/etc/passwd中,而密码使用samba服务的自有密码文件,所以首先要创建好系统用户,然后将系统用户加入到samba服务的密码文件中。
这里需要使用到一个命令:smbpasswd
smbpasswd
选项:
-a USERNAME:将指定的系统用户添加到samba密码文件中。
-d USERNMAE:将指定的已经存在samba密码文件中的用户禁用。
-e USERNAME:将指定的已经存在samba密码文件中的被禁用的用户启用。
-x USERNAME:将指定的已经存在samba密码文件中的用户删除。
例:

[root@localhost ~]# useradd user1
[root@localhost ~]# smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.
[root@localhost ~]# 

然后在windows主机上访问网上邻居中的Linux主机了,或者直接使用UNC路径:\IP
例:\172.16.20.242
需要使用用户名和密码登陆,用户名和密码即刚刚加入到samba密码文件中的
使用user1用户登陆时,默认访问的就是user1用户的家目录,以此类推

需要注意的是:如果使用Linux主机访问Linux主机的共享资源,同样需要在同一个工作组中。

配置文件简析
/etc/samba/smb.conf
在此配置文件中,“#”注释的是解释信息,“;”注释的是可以启用的指令或选项
samba服务简析
workgroup:工作组名设定
server string:samba服务器描述
netbios name:设置netbios名
interfaces:samba服务所监听的地址
hosts allow:白名单,仅允许来自哪些

samba服务简析
log file:每个客户端访问samba服务时都会生成客户端地址为后缀的日志文件。
max log size:且每个日志文件超过50KB时,进会进行日志滚动。

samba服务简析

security = user:表示访问samba服务时必须使用用户名和密码进行认证
passdb backend = tdbsam:samba用户的密码使用tdbsam格式存放

--Domain Members Options--
加入到windows域后的设置
...
...

samba服务简析
公用的共享配置
[home]
comment:注释信息
browseable = {yes|no}:访问者非此家目录的属主或属组时,是否允许访问
writeable = {yes|no}:是否可写,用户通过samba服务登陆访问此目录后是否拥有写权限
valid users = %s:有效的用户,%S为宏,表示为它自己
[printers]中的配置很少用到,这里不作详细讲解

特定共享的设定:
语法:
[shared_name]
path = /path/to/share_directory 共享路径。
comment = COMMENT STRING 注释。
guest ok = {yes|no} 是否允许来宾账号访问。
public = {yes|no} 是否公开。
writeable = {yes|no} 是否公开。
read only = {yes|no} ,yes表示只读,no表示可写。
browseable = {yes|no} 该参数是指出共享对于正在浏览的客户是否可见,或者共享通过使用UNC(通用命名约定)才能访问。
例如要访问共享名 public ,而其浏览功能(browseable)已经被关闭(no)
则它不会出现在浏览列表中(即在浏览器中不可见)。
write list = +GROUP_NAME 表示组内用户都可写。

配置文件修改完成后,需要使用测试配置文件是否有语法错误:
testparm命令不仅可以测试配置文件语法错误,还能显示最终生效的配置

值得注意的是:共享权限和文件系统权限需要一致,否则会导致访问不到;如果有特殊用户需要访问共享目录,不建议直接修改属主或属组权限,建议使用facl。

samba的图形用户界面
samba的图形用户界面是由samba-swat包提供,需要额外安装
samba的图形用户界面基于web服务提供图形界面,且是自己提供web服务,并非依赖于httpd或Nginx,且服务通过xinetd(超级守护进程)代为管理。
启用图形用户界面
[root@localhost ~]# vim /etc/xinetd.d/swat
samba服务简析
only_from选项用于指定可由哪些主机访问swat页面
修改only_from选项允许需要的主机访问
修改disbale = no
保存配置文件后启动xinetd服务
[root@localhost ~]# service xinetd start
在浏览器地址栏中输入地址和端口:IP:901
例:
http://172.16.20.241:90
samba服务简析
这里弹窗提示需要输入用户名和密码,直接使用操作系统的root用户登陆即可
samba服务简析

HOME为主页,里面有各配置文件的详细文档。
GLOBALS为全局信息
SHARES为共享信息,里面有已设置的共享的配置信息(从配置文件中读取而来),可以在此处更改配置信息,更改后点击Commit Changes保存更改,这样会自动修改配置文件并重启服务。需要注意的是:这里会直接修改并覆盖原有配置文件,如果配置不当,很可能会导致原有配置丢失,建议修改之前备份配置文件。
PRINTERS
WIZARD
STATUS为服务信息,可以操作服务,启动或停止或重启,并显示已连接的客户端,以及对客户端的一系列操作等等。
VIEW为视图信息,可以查看视图的详细配置参数。
PASSWORD为密码信息,可以在此处修改密码,最初使用系统root用户和密码登陆,可以在此处修改,不使用系统root用户。

主要是笔记整理,写的比较潦草,如有遗漏错误和争议之处,欢迎大家的批评指正和讨论,谢谢。
还有些许地方不够完整,继续学习以后回来填坑。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章