CentOS下samba服务安装和配置

Samba基础

什么是Samba

Samba安装在linux上,是linux系统和windows系统之间互相通信共享文件的工具。
Samba的主要功能是文件共享

工作流程

协议协商--->建立连接--->访问共享资源--->断开连接

相关进程

  • smbd:管理共享资源,用户验证(TCP端口:445)
  • nmbd:NetBIOS名称解析(UDP端口:137、138、139)

安装步骤

服务端

yum install samba

客户端

yum install samba-client

启动

service nmb start
service smb start

samba服务端配置

配置文件/etc/samba/smb.conf中,[global]全局配置,优先级最低;[homes]用户家目录配置;[printers]打印机相关;

[global]
workgroup=MYGROUP
serverstring=SambaServerVersion%v
security=user#模式,验证用户名密码
encryptpasswords=Yes#密码加密存储
passdbbackend=tdbsam#密码存储方式
usernamemap=/etc/samba/smbusers#虚拟用户
loglevel=0#日志级别
logfile=/var/log/samba/%m.log#日志目录
maxlogsize=50
cupsoptions=raw#打印机相关[homes]
comment=HomeDirectoriesfor%S#%S为通配符,当前登录用户
guestok=No
validusers=%S
forceuser=%S#只当前登录用户可写
writeable=Yes
browseable=No#共享其他人不可见
[printers]
comment=AllPrinters
path=/var/spool/samba
guestok=No
printable=Yes
browseable=No

还可以自定义配置如

[sm22]
comment=datadirforsm2
path=/data/sm2
guestok=No
validusers=sm2
writeable=Yes
directorymask=0700
browseable=No

Samba用户管理

添加系统用户

useradd -s /sbin/nologin test1  #test1不能登录操作系统
smbpasswd -a test1              #添加test1至samba数据库

添加大量的虚拟用户(sm11、sm12、sm13..)映射至test2用户

useradd -s /sbin/nologin  test2
smbpasswd -a test2
vim /etc/samba/smbusers
test2 = sm11  sm12  sm13  sm14  sm15  sm16

为特殊用户建立单独配置文件

  • 为sm2用户创建单独配置文件
cp /etc/samba/smb.conf /etc/samba.conf.sm2
  • 编辑/etc/samba/smb.conf文件
vim /etc/samba/smb.conf
[global]
config file = /etc/samba/smb.conf.%U

8 编辑/etc/smb.conf.sm2文件,去掉browseable=no这样sm2在访问服务器时,sm22服务可见

[sm22]
comment=datadirforsm2
path=/data/sm2
guestok=No
validusers=sm2
writeable=Yes
directorymask=0700
  • 重启samba服务
service nmb restart
service smb restart