一:简介
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。
SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件。
Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议(一般默认都安装好了)。
二:安装Samba
三:启动Samba
组成Samba运行的有两个服务,一个是SMB,另一个是NMB; SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口; 而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。
Samba服务器可实现如下功能:WINS和DNS服务; 网络浏览服务; Linux和Windows域之间的认证和授权; UNICODE字符集和域名映射;满足CIFS协议的UNIX共享等。
启动samba:
1
2
| service smb start
service nmb start
|
四:配置Samba samba配置文件存放在/etc/samba/smb.conf 包括四个设置段: [global] 设置全局环境选项 [homes] 设置用户宿主目录共享 [printers] 设置打印机共享 [sharefiles] 设置文件共享 # 名字自己设置,自己设置的共享文件段, 注:行前有分号“;”或“#”都表示注释,“#”表示描述注释,“;”表示配置注释
[global]段主要选项设置: workgroup=指定工作组或域 server string=描述 security=指定安全模式 #这里指定samba的安全等级。 关于安全等级有四种: share:用户不需要账户及密码即可登录samba服务器 user:由提供服务的samba服务器负责检查账户及密码(默认) server:检查账户及密码的工作由另一台windows或samba服务器负责 domain:指定windows域控制服务器来验证用户的账户及密码。 hosts allow=限定主机访问 服务的基本限定: 1、哪些主机访问 hosts allow hosts deny 2、哪些用户访问 #Samba允许优先 log file=指定日志文件存放位置 max log size=指定日志文件大小
load printers:加载打印机 cups options = raw 打印机相关设置;
[homes]段主要选项 comment=Home Directories 描述信息 browseable=no 无权限共享目录隐藏 writable=yes 可写 no 只读 五、Samba应用示例 1、允许用户通过Windows客户端访问自己的宿主目录。
①、安装Samba,不需要对配置文件做修改,即可实现此功能 如果启用了SElinux,需要先执行:setsebool -P samba_enable_home_dirs on 或者直接关闭 关闭iptables service iptables stop ②、设置用户samba验证密码 smbpasswd -a 用户名 #添加验证密码 smbpasswd 用户名 #修改验证码 注:用户必须是linux系统用户 ③、启动samba服务 service smb start
samba服务器段查看访问的客户端信息:smbstatus 1
2
3
4
5
6
7
8
9
10
11
12
| [iyunv@localhost ~]# smbstatus
Samba version 3.6.23-14.el6_6
PID Username Group Machine
-------------------------------------------------------------------
3174 xxj xxj win-ohl5ffs9nit (172.16.11.121)
Service pid machine Connected at
-------------------------------------------------------
IPC$ 3174 win-ohl5ffs9nit Sat Jul 4 11:28:50 2015
No locked files
|
2、设置samba共享目录/software,允许用户jack与mary可以通过windows客服端访问,并具有读写权限。 ①创建目录/software,添加用户jack与mary,设置验证密码,启动samba服务 ②关闭iptable和selinux ③配置/etc/samba/smb.conf 在配置文件末尾添加 1
2
3
4
5
| [software]
path=/software #共享目录
valid users=jack mary #指定访问用户
writable=yes #可读
browseable = no #无权限共享目录隐藏
|
④重启samba服务 这里我们发现对software没有写权限 用户是否对共享文件有写权限是取决于: samba是否授予写权限 用户在linux系统中是否对共享目录有写权限 要满足这2个条件,在客户端才对software具有读权限 1
2
3
4
5
| groupadd softadmin
gpasswd -a jack softadmin
gpasswd -a mary softadmin
chgrp softadmin /softadmin
chmod g+w /softadmin
|
Samba服务器检测命令
测试语法是否有错误 testparm
|