一、Samba简介
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。
Samba由两个主要程序组成,它们是smbd和nmbd。这两个守护进程在服务器启动到停止期间持续运行,功能各异。Smbd和nmbd使用的全部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd两个守护进程说明输出什么以便共享,共享输出给谁及如何进行输出。
Samba提供了基于CIFS的四个服务:文件和打印服务、授权与被授权、名称解析、浏览服务。前两项服务由smbd提供,后两项服务则由nmbd提供。 简单地说,smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使主机(或工作站)能浏览Linux服务器。
二、Samba软件架构
samba:服务器端的应用程序,这个套件主要提供了SAM服务器所需的各项服务程序(smbd及nmbd)、SAMBA的文件档(document)、以及其它与SAMBA相关的logrotate设定文件及开机默认选项档案等 。
samba-common:这个套件则主要提供了SAMBA的主要配置文件(smb.conf),smb.conf语法检验的测试程序(testparm)等等,samba的支持文件;
samba-client:客户端的应用程序,这个套件则提供了当Linux做为SAMBAClient端时,所需要的工具指令,例如挂载SAMBA文件格式的mount.cifs、取得类似网上邻居相关树形图的smbtree等。如果Linux系统共享资源,没有Windows作为测试,可以用Linux自带的samba-client作为测试端!
三、Samba用户管理
注意:samba用户是基于Linux的系统用户的,所以在添加samba用户前需要先创建Linux系统用户,否则添加samba用户将失败。
1、smbpasswd命令属于samba套件,用户添加及删除samba用户和为用户修改密码。
语法格式:
smbpasswd [参数]
常用参数:
-a 向smbpasswd文件中添加用户-c <配置文件> 指定samba的配置文件-x 从smbpasswd文件中删除用户-d 在smbpasswd文件中禁用指定的用户-e 在smbpasswd文件中激活指定的用户-n 将指定用户的密码置空
2、pdbedit是samba的用户数据库管理命令
语法格式:
pdbedit [参数]
常用参数:
pdbedit -a username # 新建Samba账户。pdbedit -r username # 修改Samba账户。pdbedit -x username # 删除Samba账户。pdbedit -L # 列出Samba用户列表,读取passdb.tdb数据库文件。pdbedit -Lv # 列出Samba用户列表详细信息。pdbedit -c "[D]" -u username # 暂停该Samba用户账号。pdbedit -c "[]" -u username # 恢复该Samba用户账号。
3、Samba用户管理操作实例
1)添加用户
[root@localhost ~]# useradd -s /sbin/nologin admin[root@localhost ~]# pdbedit -a adminnew password:retype new password:
或者
[root@localhost ~]# smbpasswd -a adminNew SMB password:Retype new SMB password:Added user admin.
2)删除用户
[root@localhost ~]# smbpasswd -x adminDeleted user admin.
或者
[root@localhost ~]# pdbedit -x admin
3)查看用户列表
[root@localhost ~]# pdbedit -Ladmin:1000:test:1001:a:1002:b:1003:c:1004:
4)查看用户列表详细信息
[root@localhost ~]# pdbedit -Lv
5)禁用用户
[root@localhost ~]# smbpasswd -d adminDisabled user admin.
或者
[root@localhost ~]# pdbedit -c "[D]" -u admin
6)激活用户
[root@localhost ~]# smbpasswd -e adminEnabled user admin.
或者
[root@localhost ~]# pdbedit -c "[]" -u admin
四、Samba连接使用
1、Linux客户端
1)安装Samba客户端工具
[root@localhost ~]# yum -y install samba-client
2)连接Samba服务器
[root@localhost ~]# smbclient -L //192.168.2.195 -U admin
3)Linux挂载Samba
# 安装安装cifs工具
[root@localhost ~]# yum -y install cifs-utils cifs-utils-devel
# 创建本地挂载点
[root@localhost ~]# mkdir -p /data/samba/admin
# 挂载Samba
[root@localhost ~]# mount -t cifs -o username=admin,password=Aa123456 //192.168.2.195/管理员 /data/samba/admin
# 查看挂载情况
[root@localhost ~]# df -Th
# 配置开机自动挂载
[root@localhost ~]# vim /etc/fstab
//192.168.*.*/管理员 /data/samba/admin cifs username=admin,password=Aa123456 0 0 |
或者
[root@localhost ~]# echo -e "username=admin\npassword=Aa123456" >/etc/samba/admin.passwd[root@localhost ~]# vim /etc/fstab
//192.168.*.*/管理员/data/samba/admin cifs credentials=/etc/samba/admin.passwd 0 0 |
2、Windows客户端
1、同时按住键盘上的Windows+R,调出运行窗口。在运行窗口输入\\192.168.2.195,如下图所示: