samba 功能:windows和linux系统之间共享文件。采用smb协议和CIFS文件系统。

CIFS:是通用互联网文件系统协议。

说明:windows文件共享默认采用的是smb协议。smb是服务器消息块(server message block)的缩写。

samba的优点: 1、既可以共享文件,也可以共享打印机。 2、既可以基于用户访问控制,也可以基于客户机IP的访问控制。 3、支持文件的在线编辑。即不用将文件下载到本地修改之后再上传到服务器。

环境: server 192.168.10.7 test1.uplook.com client 192.168.10.1 client.uplook.com

samba服务器搭建思路: 1、安装samba服务器软件 2、启动smb服务,用smbclient做本地测试。 3、创建普通用户,然后设置为samba用户 4、在/etc/samba/smb.conf主配置文件中设置目录的共享信息。 5、用smbclient客户端程序在服务器上做本地测试(也称内测)。 6、在另一台客户端主机上用smbclient做公测,看能否访问共享。

服务器
一、查看软件包是否安装 # rpm -qa | grep samba 查samba是否已安装 samba-common-4.4.4-9.el7.noarch 通用组件包
samba-common-tools-4.4.4-9.el7.x86_64 工具包 samba-4.4.4-9.el7.x86_64 服务器主程序包 samba-client-4.4.4-9.el7.x86_64 客户端软件包linux

#yum install  samba   -y          //安装软件

二、启动服务 systemctl restart smb 重启服务 systemctl enable smb 允许开机启动 systemctl status smb 查状态

三、客户机访问共享 装软件:yum install -y samba-client 查共享资源:smbclient -L 192.168.10.7 提示密码时直接回车

三、服务器端的配置文件 # rpm -ql samba-common /etc/samba/smb.conf //主配置文件 /etc/samba/smb.conf.example

vim /etc/samba/smb.conf 可用man smb.conf查手册 [global] //全局设置 workgroup = SAMBA //定义工作组,网上邻居中的组名 security = user //安全验证的设置 user :需要提供用户名和密码才能访问共享,验证使用的是本地服务器(即samba服务器) share:匿名用户,不需要提供用户名和密码直接就能访问共享 //7已废弃

    passdb backend = tdbsam   //用户和密码存放的格式  /var/lib/samba/private/passdb.tdb
    
    printing = cups    //打印相关选项
    printcap name = cups
    load printers = yes   
    cups options = raw    

[homes] //默认共享普通用户的家目录 comment = Home Directories //注释,对共享的描述 valid users = %S, %D%w%S //只允许某个用户访问。%S是所有samba用户的变量 browseable = No //是否显示在网上邻居中 read only = No //是否只读,No为可写 inherit acls = Yes //继承acl权限

smb.conf的其他功能选项: 允许匿名访问: public=yes 或 guest ok = yes

权限控制 read only = Yes 只读,等同writable=No write list = 用户名 @组名 可写白名单

read only = No      只读,等同writable=Yes
read list = 用户名  @组名     只读白名单(可写黑名单)  

访问控制 限制ip(可用于global和共享设置) hosts allow = 192.168.1. //只允许网段192.168.1.访问 hosts deny = 192.168.2. //拒绝网段192.168.2.访问

限制用户
    valid users = 用户  @组名    //只允许哪些用户访问        
    invalid users = 用户  @组名    //拒绝哪些用户访问      

监听IP或接口 interfaces = eth0 192.168.2.10/24 192.168.3.10/255.255.255.0