一:简介
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
yum install -y 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:
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
[root@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
在配置文件末尾添加
[software] path=/software #共享目录 valid users=jack mary #指定访问用户 writable=yes #可读 browseable = no #无权限共享目录隐藏
④重启samba服务
这里我们发现对software没有写权限
用户是否对共享文件有写权限是取决于:
samba是否授予写权限
用户在linux系统中是否对共享目录有写权限
要满足这2个条件,在客户端才对software具有读权限
groupadd softadmin gpasswd -a jack softadmin gpasswd -a mary softadmin chgrp softadmin /softadmin chmod g+w /softadmin
Samba服务器检测命令
测试语法是否有错误 testparm
本文出自 “xiexiaojun” 博客,转载请与作者联系!