一、Samba 基础
1> 什么是Samba
Samba安装在linux上,是linux系统和windows系统之间互相通信共享文件的工具。
Samba的主要功能是文件共享
2> 工作流程
协议协商--->建立连接--->访问共享资源--->断开连接
3> 相关进程
smbd : 管理共享资源,用户验证 (TCP端口:445)
nmbd : NetBIOS名称解析 (UDP端口:137、138、139)
二、所作实验步骤
1> CentOS 6.2下安装和启动
服务端:
yum install samba
客户端:
yum install samba-client
启动:
service nmb start
service smb start
2> samba 服务端配置
配置文件/etc/samba/smb.conf中,[global] 全局配置,优先级最低;[homes] 用户家目录配置;[printers] 打印机相关;
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
security = user #模式,验证用户名密码
encrypt passwords = Yes #密码加密存储
passdb backend = tdbsam #密码存储方式
username map = /etc/samba/smbusers #虚拟用户
log level = 0 #日志级别
log file = /var/log/samba/%m.log #日志目录
max log size = 50
cups options = raw #打印机相关
[homes]
comment = Home Directories for %S #%S 为通配符,当前登录用户
guest ok = No
valid users = %S
force user = %S #只当前登录用户可写
writeable = Yes
browseable = No #共享其他人不可见
[printers]
comment = All Printers
path = /var/spool/samba
guest ok = No
printable = Yes
browseable = No
还可以自定义配置如
[sm22]
comment = data dir for sm2
path = /data/sm2
guest ok = No
valid users = sm2
writeable = Yes
directory mask = 0700
browseable = No
3> Samba 用户管理
a> 添加系统用户
useradd -s /sbin/nologin test1 #test1不能登录操作系统
smbpasswd -a test1 #添加test1至samba数据库
b> 添加大量的虚拟用户(sm11、sm12、sm13..)映射至test2用户
useradd -s /sbin/nologin test2
smbpasswd -a test2
vim /etc/samba/smbusers
test2 = sm11 sm12 sm13 sm14 sm15 sm16
4> 为特殊用户建立单独配置文件
a> 为 sm2 用户创建单独配置文件
cp /etc/samba/smb.conf /etc/samba.conf.sm2
b> 编辑 /etc/samba/smb.conf 文件
vim /etc/samba/smb.conf
[global]
config file = /etc/samba/smb.conf.%U
c> 编辑 /etc/smb.conf.sm2 文件,去掉 browseable = no 这样 sm2 在访问服务器时,sm22 服务可见
[sm22]
comment = data dir for sm2
path = /data/sm2
guest ok = No
valid users = sm2
writeable = Yes
directory mask = 0700
d> 重启 samba 服务