samba服务器安装配置
一、Samba服务器的基本原理
Samba服务器在linux系统上面实现了AMB/CIFS协议,即可以在linux系统中为windows主机提供网络文件共享服务。Samba服务器中包括以下两个服务程序:
・smbd服务程序为客户机提供了服务器中共享资源(目录和文件)的访问。
・nmbd服务程序提供了NetBIOS主机名称的解析,为windows网络中或工作组内的主机进行主机名称解析。
Samba服务器需要smbd和nmbd两个服务程序同时运行,缺一不可。详细介绍大家可以参考Samba官网 http://www.samba.org
二、Samba服务器的安装于配置
2.1、Samba服务器的安装
Samba安装非常简单这里不做过多解释,Samba需要以下3个包可以使用yum进行安装
yum -y installsamba-common samba samba-client
・samba-common软件包提供了Samba服务器和客户机中必须使用的公共文件,因此该软件包必须在Samba服务器和客户机软件包之前安装。
・samba软件包中包提供了samba服务器程序所有的文件
・samba-client软件包中提供了samba客户机的所有文件
2.2、Samba服务器配置
在对Samba服务器的管理中,Samba服务器的配置时以主配置文件smb.conf为核心进行的,配置过程包括以下步骤:
(1)在smb.conf文件中进行资源共享的配置,包括用户目录公共目录等
(2)使用smbpasswd命令建立samba用户账户和设置密码
(3)可以使用命令testparm命令对配置好的smb.conf文件进行测试
(4)配置完毕后启动samba服务器的smb服务,smb服务器即为samba服务
1、smb.conf文件的配置
smb.conf的配置文件包括3个部分:
・【global】部分是samba服务器的全局设置配置项内容对整个samba有效;
・【homes】部分设置了用户共享目录属性,这部分中不包括的设置项使用配置文件中的全局设置;
・【printers】部分设置了samba服务器中的打印机共享资源的属性,samba服务器除了可以提供文件共享,还能够提供打印机共享;
下面是smb.conf文件示例:
[global]
workgroup = MYGROUP
server string = samba server
printcap name = /etc/printcap
load printers = yes
log file = /var/log/samba/%m.log
max log size = 50
security = user
在[global]配置中常用配置项的含义见下表:
配置项 |
说明 |
workgroup |
设置samba服务器所在的工作组的名称,默认设置为MYROUP |
server string |
设置samba服务器的说明文字,用于描述samba主机 |
log file |
设置samba服务器的日志文件,默认设置为“/var/log/samba/%m.log”,表示所有设置文件都保存在“/var/log/samba”目录中,使用samba服务器的每个客户机的日志分别保存在与客户主机同名的“/%m.log”文件中,"%m"变量表示客户主机的名称 |
max log file |
设置日志文件的最大容量,默认为50,表示50KB,这个设置项的单位是KB |
security |
设置默认服务器的安全级别为user,表示需要经过samba服务器的用户认证后才能登陆访问服务器中的资源,如果设置成share表示用户可以匿名访问 |
2、建立samba用户账号
samba服务器不适用linux系统的用户账号进行用户认证,而是维护自己的账号文件。samba服务器用户账号保存在"/etc/samba/"目录中,文件名是smbpasswd,初始状态smbpasswd文件不存在,在第一次适用smbpasswd建立samba账号时自动建立。使用smbpasswd命令的“-a”选项可以向smbpasswd文件中添加samba用户账号,在添加过程中会提示输入用户口令。smbpasswd建立账号参数如下:
・-h:显示smbpasswd的命令格式帮助
・-a:添加指定的用户账号
・-d:禁用指定的用户账号
・-e:启用指定的用户账号
・-x:删除指定的用户账号
使用smbpasswd命令建立samba用户账号时应该注意一下几点:
・samba用户账号使用独立的smbpasswd文件保存用户的账号和加密口令信息
・samba用户账号之前需要建立同名的linux系统账号在linux服务器上面,因为samba用户是使用同名的系统账号身份访问linux系统资源(文件和目录)的
・samba用户的口令和同名系统用户口令是独立的,可以相同也可以不同,需要分别进行维护和更改
・当samba用户不需要登录linux系统时,同名的系统账号可以不设置口令
三、配置实例
3.1、匿名访问
公司有个samba服务器,现在公司需要建立一个公共目录public共所有人匿名访问,并且具有上传下载权限:
mkdir /home/public
chown -Rnobody.nobody /home/public
vi/etc/samba/smb.conf
security = user改为security = share
[public]
comment = public
path = /home/public
public = yes
only guest = yes
writable = yes
在[public]共享目录中,各项设置含义如下:
・comment用于设置共享的说明信息
・path用于设置共享目录对应linux的系统目录
・public设置为yes表示该共享目录对所有samba用户是可见的
・only guest设置为yes表示所有用户在使用该共享目录时的用户身份为guest,即linux系统用户nobody
・writable设置为yes表示所有用户对共享目录有可写权限
3.2、用户通过用户名密码访问
公司需要做云平台,今后所有的公司人员的工作都需要在云平台上操作,故要求运维人员以samba的方式为云平台每个员工分配自己单独的存储目录,每个员工自能看到自己的目录并且对自己的目录有读写权限:
mkdir /home/zhangsan
mkdir /home/lisi
useraddzhangshan
useraddlisi
smbpasswd -azhangshan
smbpasswd -a lisi
cpsmb.confsmb.conf.zhangsan
cpsmb.confsmb.conf.lisi
vim/etc/samba/smb.conf.zhangsan
[zhangsan]
comment = zhangsan
path = /home/zhangsan
write list = zhangsan
vim/etc/smb.conf.lisi
[lisi]
comment = lisi
path = /home/lisi
write list = lisi
这里需要注意的是在配置之前要确认security = user这项是user而不是share,配置好后重启smb服务验证配置是否生效
四、samba客户端安装使用
samba客户端安装非常简单可以使用yum安装即可完成,samba客户端主要使用两个命令即smbclient和smbmount
yum installsamba-client
4.1、smbclient命令使用
smbclient是samba服务器的命令行方式登录客户端,使用形式类似telnet和ftp命令。使用smbclient命令可以登录到本机活指定的samba服务器进行操作。使用smbclient命令的“-L”选项可以显示指定samba服务器中的共享资源列表。“-U”选项可以指定用户名及访问目录,smbclient上传命令为get、下载命令为put,如想学习更多名利可以使用help命令查看,使用格式如下:
smbclient -L192.168.8.178
smbclient192.168.8.178/lisi-U lisi
4.2、smbmount命令使用
smbmount命令主要是针对windows服务器共享目录而言的,使用smbmount命令可以把windows服务器共享目录挂载到本地使用,命令格式如下:
smbmount192.168.8.178/zhangsan/mnt
五、samba WEB管理工具swat
swat管理工具以web界面的形式提供了对samba服务器的管理功能,通过在管理工作站中使用网页浏览器访问swat界面,可以方便快捷的对samba服务器进行远程管理。下面我们对swat的安装使用进行简单描述:
安装非常简单使用yum安装
yum installsamba-swat
swat是受xinetd超级服务管理的服务程序,在安装的默认状态下是禁用的,因此需要使用chkconfig命令启用swat服务,并重启xinetd服务程序。
chkconfig --listswat
swat off
chkconfig swat on
chkconfig --listswat
swat on
servicexinetdrestart
swat服务在的配置文件位于“/etc/xinetd.d” 目录中,文件名是swat。在该配置文件中默认设置了only_from的值为127.0.0.1,即只有samba服务器主机中可以访问该配置界面。如果用户需要在其他主机远程访问管理samba服务器的话需要修改only_from的值为你想要的那台主机only_from = 192.168.8.178,修改完成后重启xinetd服务器生效。因为swat服务运行在901端口,所以在访问需在浏览器输入http://192.168.8.178:901即可出现登陆页面,在登陆页面输入samba服务器的管理员用户名密码即可登陆操作。
技术交流q群:155596694