• 主要用途:实现linux和windows之间跨平台文件共享

  • samba使用netbios协议:该协议只能在局域网中实现,不能跨网段,所以samba比较广泛使用在lan内部,在netbios中每个主机设置不同的主机名,工作在同一工作组。

  • peer-peer工作组模型

    所有PC在自己的计算机上面管理自己的账号和密码,需要使用对方的资源时需要登陆对方的账号和密码

  • 域模型

    所有账号和密码放置在一个主控机上,在该网段的任何人想使用任何计算机需先输入自己的账号和密码,通过域主机验证之后分配相应的资源和权限,不需要知道其他人的密码。


安装samba服务端

  • 安装samba软件:yum install samba*

  • 关闭防火墙和selinux(setenforce 0)

  • 配置smb.conf

无用户认证

1 name resolution: workgroup = wjzj(工作组名)

server string = this is a share host

netbios name = lixueserver

2 Standalone Server Options:

security = share

3 Share Definitions

comment = Temporary file space
path = /tmp
read ony = no
#public = yes

有用户认证

1 name resolution: workgroup = wjzj(工作组名)

server string = this is a share host

netbios name = lixueserver

2 Standalone Server Options:

security = user

passdb backend=tdbsam

3 Share Definitions

[homes]

comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode =0664
directory mode =0775
[public]
comment =the user group work directory
path=/home/public
# public=yes
writable=yes
valid users=@huanghuang(允许访问的组)

  • 检查语法正确性

    testparm

  • 启动samba服务

    service smb start

  • 查看端口是否启动

    netstat -tlunp

  • 客户端观察(先自检)

    smbclient -L //127.0.0.1 ,若成功,则会显示分享的目录

批注1:新版samba用了tdbsam替代了smbpasswd,用pdbedit -a username 新增samba账号和密码

pdbedit -v username 显示该用户信息

批注2:使用samba的用户必须已经存在linux系统中,既是该用户在/etc/passwd中存在条目,若无,请建立,若要使用samba当中的组功能,用户需要处在smb.conf中配置的组当中

批注3:既是在smb.conf当中用户具有写权限,若linux底层未赋予该权限,也不能对文件进行写操作。若是不小心用root创建了共享的文件,记得要将该文件的权限对samba用户开放。

批注4:若是smb.conf中开启了public功能,则windows在连接服务器时出现“不允许一个用户使用一个以上用户名于一个服务器共享资源”的情况,建议关闭public,在cmd中用net use * /del /y 断开连接,重新用新用户连接

ps:修改主机名:用hostname lixueserver 修改外,还需在/etc/hosts和/etc/sysconfig/network中修改,重启后还在