Samba简介
Samba官网:http://www.samba.org
SMB(Server Messages
Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS
over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
启动服务:# /etc/rc.d/init.d/smb start
Samba有两个守护进程:smbd和nmbd
1.smbd监听139TCP端口
smbd进程的作用是处理SMB请求包,负责用户验证和文件共享;
2.nmbd监听137和138UDP端口
nmbd进程的作用是处理浏览共享和计算机名称解析;
一、查看samba服务状态
# rpm -qa | grep samba
samba-common-3.0.33-3.39.el5_8 --------> 这个是samba通用配置包;
samba-3.0.33-3.39.el5_8 ---------------> 这个是samba主服务包,如果没有需要安装上;
samba-client-3.0.33-3.39.el5_8 --------> 这个是samba客户端工具包;
二、安装samba主服务
# yum install -y samba
三、查找samba配置文件所在目录
# rpm -ql samba-common | grep smb.conf
/etc/samba/smb.conf ---------------------------------> 配置文件
/usr/share/man/man5/smb.conf.5.gz
或:
# rpm -qc samba-common
/etc/samba/lmhosts
/etc/samba/smb.conf ---------------------------------> 配置文件
/etc/security/pam_winbind.conf
或:
# find /etc/ -name smb*
/etc/gnome-vfs-2.0/modules/smb-module.conf
/etc/rc.d/init.d/smb
--------------------------------> 启动脚本
/etc/samba/smb.conf
---------------------------------> 配置文件
/etc/samba/smbusers
四、配置smb.conf文件
# cp /etc/samba/smb.conf /etc/samba/BAK.smb.conf
先备份
# vi /etc/samba/smb.conf 编辑
1.配置文件主要结构:
[global] 设置全局环境选项
# ----------------------- Network Related Options
-------------------------
# 工作组或域:
workgroup =
MYGROUP
# Samba服务器描述:
server string = Samba Server Version
%v
# netbios名称:
; netbios name =
MYSERVER
# 指定使用的网络接口卡
; interfaces = lo eth0 192.168.12.2/24
192.168.13.2/24
# 允许访问的IP网段列表(★允许优先):
; hosts allow = 127. 192.168.12.
192.168.13.
# 禁止访问的IP网段列表(★允许优先):
; host deny =
192.168.190
注:此处如果某IP段被同时指定了允许和禁止,则最终结果“很违背常规”,是允许优先。
# --------------------------- Logging Options
-----------------------------
# 按每服务器模式切割日志文件
# logs
split per machine
# 指定日志文件位置:
log file = /var/log/samba/%m.log
# 指定每个日志文件最大字节数
# max 50KB per log file, then
rotate
# 日志文件最多占用空间:
max log size = 50
#============================ Share Definitions ==============================
[homes] 设置用户宿主目录共享(如果不需要用户通过smb访问自己的宿主目录,将此区块整体注释掉即可;;;)
[printers] 设置打印机共享(通常不用,将此区块整体注释掉即可;;;)
2.【实验】添加我的共享目录:
可参考[homes]区块,在配置文件的末尾添加共享目录区块配置信息:
####################### 设置我的共享目录 ##########################
[wwwroot]
# 指定我的共享目录描述
comment = wwwroot directory
# 指定共享目录路径
path = /wwwroot
# 设置共享目录对所有用户是否可见:
browseable = yes
# 设置共享目录是否可写权限(取与Linux系统对目录权限的交集!逻辑and)
writable = yes
# 设置有效访问用户(多个用户空格分开,%S 表示匹配所有用户)
valid users = martin jack
###################################################################
3.检查配置文件有无语法错误:
# testparm
五、查找smb服务启动脚本 并启动之
1.查找smb服务启动脚本
# find /etc/ -name
smb
/etc/rc.d/init.d/smb ------------------------> 启动脚本
或:
# rpm -ql samba | grep smb
/etc/rc.d/init.d/smb
------------------------> 启动脚本
/etc/samba/smbusers
/usr/bin/mksmbpasswd.sh
/usr/bin/smbcontrol
/usr/bin/smbstatus
2.启动SMB服务:
# /etc/rc.d/init.d/smb start
或:
#
service smb start
3.设置开机自启动:
# chkconfig --levels 235 smb on
六、添加smb用户【必须是系统中已存在的用户,假如系统中已经有了一个名为martin的用户】,并设置密码
# smbpasswd
-a martin
New SMB password:
Retype new SMB password:
主要选项解析:
-a add user 表示添加SMB用户
-d disable user
表示禁用SMB用户
-e enable user 表示开启SMB用用户
-x delete user
表示删除SMB用户
注:不加任何参数表示修改现已有SMB用户的密码
七、windows客户端登录:\192.168.1.xxx
八、无法登录或无法访问故障排除:
1.如果SELinux阻止了访问:
首先查找过滤SELinux关于samba的策略选项:
# setsebool -a | grep samba
找到了samba_enable_home_dirs这项,将启设置为on即可:
# setsebool -P
samba_enable_home_dirs on
# chcon -t samba_share_t /wwwroot/
2.如果防火墙阻止了访问,先行关闭:
# iptables -F
3.如果可以登录却无写权限(假如对用户martin):
# setfacl -m u:martin:rwx -R
/wwwroot/
# setfacl -m d:u:martin:rwx -R /wwwroot/
4.【可选】为防止用户删除他人的数据文件,也可对共享目录设置粘着位权限
# chmod o+t /wwwroot/
# chmod 1775 /wwwroot/
取消粘着位权限:
# chmod o-t /wwwroot/
# chmod 0775 /wwwroot/
九、从服务端查看当前所有登录用户信息:
# smbstatus
Samba version
3.0.33-3.39.el5_8
PID Username Group
Machine
-------------------------------------------------------------------
23427 martin martin pc (192.168.10.1)
查看samba的日志记录:
# cat /var/log/samba/log.smbd
十、清除windows本地会话
方法1: Win7系统找到: 控制面板 -> 用户帐户和家庭安全 -> 凭据管理器
选择对应的凭据,然后点击“从保管库中删除”
方法2: 开始 -> 运行cmd命令:
查看所有会话: > net use
清除所有会话: > net use * /delete /y
注:* 表示所有会话