samba是在linux和unix系统上实现smb协议的一个免费软件,由服务器及客户端程序构成。smb(server messages block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。smb协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
samba服务的程序组件
samba服务器提供了smbd、nmbd两个服务程序,分别完成不同的功能;
smbd: 负责为客户机提供服务器中共享资源(目录和文件等)的访问;
nmbd: 负责提供基于netbios协议的主机名称解析,以便于windows网络中的主机进行查询服务;
smbd程序负责监听端口
smb协议139端口; cifs协议445端口;
nmbd程序负责监听端口
负责监听udp协议的137~138端口(netbios协议)
samba主配置文件:/etc/samba/smb.conf
(关于配置文件修改方法可参考man smb.conf),下面将简单介绍配置文件中主要修改部分含义;
security = share //设置用户用户访问samba服务器认证方式; share: 用户访问不需要账户密码,可直接进行访问,即匿名访问; user: samba服务器提供的共享文件只能被授权的用户访问,由samba server 负责检查账号密码的正确性; server: 依靠其他windows nt/2000或者samba server 来验证用户的账号和密码,是一种代理验证方式; domain: 域安全级别,使用主域控制器(pdc)来完成认证。 passdb backend = tdbsam //定义用户后台类型 smbpasswd: 使用smb服务的smbpasswd命令给系统设置smb密码; tdbsmb: 创建数据库文件并使用pdedit建立smb独立用户,用smbpasswd -a username 为smb用户设立密码,前提是针对已有账户,也可使用 pdedit -a username //新建smb账户 pdedit -x username //删除smb账户 pdedit -l //查看已有smb账户
实验要求:
①服务器提供samba服务;
②客户机访问服务器;
③拟定客户机和服务器在同一局域网内;
服务器ip:192.168.100.109
客户机ip:192.168.100.3
④实现客户机的匿名访问、用户验证访问和匿名用户访问方式。
security = share //101行,以share方式共享文件 在配置文件底端增添需要共享文件: [abc] //共享目录为abc path=/opt/abc //共享目录所在路径 public=yes //文件类型为公共 browseable=yes //允许访问该目录 write=yes //可以写入 create mask=0644 //匿名用户写入权限 directory mask =0755 //匿名用户创建目录权限
客户端中实现匿名访问如下:
security = user //101行,以用户验证方式共享文件 [share] //共享目录为share path=/opt/share //共享目录所在路径 create mask=0644 //用户写入权限 directory mask =0755 //用户创建目录权限 valid users = zhangsan,lisi //设置允许访问的有效账户 write list = zhangsan //只允许zhangsan账户有写入权限
客户端中实现账户访问如下:
zhangsan账户可以实现账户访问,并拥有在share文件中读写权限。
lisi账户只能在自己的家目录下具有读写权限,而在share目录下没有写入权限。
新增如下内容:
zhangsan = 01 02 03 //设置用户别名 lisi = 11 22 33
security = user username map = /etc/samba/smbusers //加入虚拟用户的文件映射
客户端中操作如下:
使用虚拟账户登陆,其他账户类似。