首页 > 代码库 > Linux之samba服务器的搭建及详解
Linux之samba服务器的搭建及详解
SAMBA简介
SAMBA是什么
Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS(Server
Message Block/Common Internet File
System)网络协议做链接的自由软件。第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows
Server的网域,扮演为网域控制站(Domain Controller)以及加入Active
Directory成员。简而言之,此软件在Windows与UNIX系列OS之间搭起一座桥梁,让两者的资源可互通有无。
SAMBA的功能
分享文件和打印机功能
提供认证功能,以不同的身份登录samba服务器访问不同的文件
Windows网络上的主机名称解析
进行装置的分享
SAMBA的结构
samba server端由smbd,Winbid进程nss_ldap进程组成,并且使用nmbd进程提供NetBIOS通信协议,进行域名解析。smbd是smb的服务进程。
samba client由CIFS Server,Active Director和S而vices For UNIX组成。
smaba监听在137/udp,138/udp,139/tcp,445/tcp端口上。
NetBIOS简介
NetBIOS为网络基本输入输出系统(英语:Network Basic Input/Output
System)的缩写,它提供了OSI模型中的会话层服务,让在不同电脑上运行的不同程序,可以在局域网中,互相连接,以及分享数据。严格来说,NetBIOS不是一种网络协议,而是应用程序接口(API)。较古老的操作系统,使用IEEE
802.2与IPX/SPX协议,可以使用NetBIOS Frames协议或NetBIOS over
IPX/SPX协议来运作。现代操作系统,多数都使用TCP/IP协议,则可通过NetBIOS over TCP/IP协议来相互通信。
SAMBA与NetBIOS的关系
SAMBA这个文件系统架构是在NetBIOS这个通信协议上开发出来,由于早期NetBIOS是无法跨路由的,只能在局域网内进行传输,后来研发出 NetBIOS over TCP/IP技术,试SAMBA应用于以太网。
SAMBA Server安装及配置
SAMBA Server的安装
下载: [root@Clone1 ~]# wget 安装依赖: [root@Clone1 ~]# yum install python-devel gnutls-devel gnutls libacl-devel openldap-devel安装: [root@Clone1 ~]# tar -xzf samba-4.6.6.tar.gz [root@Clone1 ~]# cd samba-4.6.6 [root@Clone1 samba-4.6.6]# make && make install
SAMBA配置文件详解
[global] # ------------- Network Related Options -----------------# workgroup = MYGROUP //主机群名称,主机群里的主机都相同 server string = Samba Server Version %v netbios name = MYSERVER //netbios名称,每个主机的都不相同 interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 hosts allow = 127. 192.168.12. 192.168.13. //主机白名单 # ---------------- Logging Options --------------------- log file = /var/log/samba/log.%m //登录日志PATH max log size = 50 //日志文件大小 # ------------- Standalone Server Options ----------------- security = user|shar|domain //设置分享权限,shar:资料不需要密码,大家可以分享文件。user:使用samba本身的密码资料 passdb backend = tdbsam //资料库格式。默认为tdsam[share_name] comment = All Printers //说明 path = /var/spool/samba //分享路径 browseable = no //是否所有使用者都能看到这个项目 guest ok = no writable = no //是否进行写操作 printable = yes //是否显示表格 write list=user1,user2 或+group //可写用户表单 public=yes //不属于该用户的,是否能够显示出来的 read only=yes //只读 create mode = 0664 //建立文件权限 directory mode = 0775 //建立目录的权限
配置文件的内置变量
%m:Client端NetBIOS主机名 %M:Client端Internet主机名,即HOSTNAME。 %L:SAMBA主机的NetBIOS主机名 %H:使用者的家目录 %U:目前登录的使用者的使用者名称 %g:登入的使用者的群组名称 %h:SAMBA主机名 %I:Client IP %T:日期
测试
无用户认证测试
服务器端配置:
配置文件:
检测配置文件
启动服务:
Linux客户端测试:
检查服务器上的共享:
Windows客户端测试:
访问:http://jingyan.baidu.com/article/b87fe19e63458052183568e3.html
用户认证测试
服务器端配置:
samba server配置文件
设置账号和密码:
[root@Clone1 /]# useradd -G users smb1 [root@Clone1 /]# useradd -G users smb2 [root@Clone1 /]# passwd smb1 更改用户 smb1 的密码 。 新的 密码:1234 重新输入新的 密码:1234 passwd: 所有的身份验证令牌已经成功更新。 [root@Clone1 /]# passwd smb2 更改用户 smb2 的密码 。 新的 密码:1234 重新输入新的 密码:1234 passwd: 所有的身份验证令牌已经成功更新。 [root@Clone1 /]# smbpasswd -a smb1 New SMB password:7890Retype new SMB password:7890Added user smb1. [root@Clone1 /]# smbpasswd -a smb2New SMB password:7890Retype new SMB password:7890Added user smb2.12345678910111213141516171819201234567891011121314151617181920
注:smbpasswd命令给系统用户设置smb的密码,-a参数添加用户
linux端测试:
Windows端测试:
Linux之samba服务器的搭建及详解