Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
CIFS: Common Internet File System通用网络文件系统,是windows主机之间共享的协议,samba实现了这个协议,所以可以实现wondows与linux之间的文件共享服务。
Samba服务程序logo:
环境准备:
服务端:Linux CostOS 8.2 ,IP:192.168.1.150
客户端:windows7 64位,IP:192.168.1.10
工 具:VMware Workstation 12.5 Xshell 7
说明:配置此服务用于加强对samba服务的理解以及让初学者能够按照步骤配置出samba服务,我已经对用到的smb.conf配置参数做简要的注释,其他没有用到的smb.conf配置参数附后。
一、题目
(1)在服务器中安装配置Samba服务,创建三个用户m1,m2,m3。分别建立共享m1,m2,m3,public,本地目录分别为/opt/a1、/opt/a2、/opt/a3、/opt/public;
(2)默认以匿名访问,可以对public有读权限。进入其它文件夹时需要对其身份认证;
(3)其中,m1用户属于manager组,对m1、m2、m3共享有读写权限。m2,m3用户为m2组的成员,可以互相对彼此文件有读的权限。/opt/a1的共享只有manager组用户可以访问;
(4)配置目录/var/www/liun.net共享,共享名为linu.net,manager用户组和m2用户组的成员对此共享都具有读写权限
(5)配置当系统启动时自动启动Samba服务;
二、过程配置
- 用yum或dnf安装samba服务
[root@mzzz ~]# yum install samba #二选其一安装 [root@mzzz ~]# dnf install samba #二选其一安装
- 创建manager和m2用户组
[root@mzzz ~]# groupadd manager [root@mzzz ~]# groupadd m2
- 创建用户并加入用户组manager和m2
[root@mzzz ~]# useradd m1 –G manager [root@mzzz ~]# useradd m2 –g m2 [root@mzzz ~]# useradd m3 –g m2
- 创建samba共享目录
[root@mzzz ~]# mkdir -p /opt/{a1,a2,a3,public} [root@mzzz ~]# mkdir /var/www/linu.net
- 创建samba账号和密码
[root@mzzz ~]# smbpasswd -a m1 New SMB password:此处输入该账户在Samba服务数据库中的密码为123 Retype new SMB password:再次输入密码进行确认 Added user m1. [root@mzzz ~]# smbpasswd -a m2 New SMB password: Retype new SMB password: Added user m2. [root@mzzz ~]# smbpasswd -a m3 New SMB password: Retype new SMB password: Added user m3.
- 编写smb.conf配置文件
[root@mzzz ~]# vim /etc/samba/smb.conf [public] #共享目录名称为public comment = public directory #共享信息描述 path = /opt/public #共享目录的路径 public = yes #关闭“所有人可见” writable = no #不允许在此共享目录中写入数据 browseable = yes #指定的共享信息是否在“网上邻居”中可见 [m1] comment = The M1 directory needs password access path = /opt/a1 public = no writable = yes browseable = yes valid users = @manager #只允许@manager用户组的成员访问该共享 [m2] comment = The M2 directory needs password access path = /opt/a2 public = no valid users = @m2,@manager write list = @manager #只允许@manager用户组的成员在该共享中写入数据 [m3] comment = The M3 directory needs password access path = /opt/a3 public = no valid users = @m2,@manager writable = no write list = @manager [linu.net] comment = linu.net path = /var/www/linu.net public = no valid users = @m2,@manager writable = yes write list = @m2,@manager
- 关闭防火墙功能
[root@mzzz ~]# systemctl stop firewalld.service
- 关闭系统核心防护 SELinux域
[root@mzzz ~]# setenface 0 #临时关闭,如果要永久关闭,请修改SELinux的配置文件
- 设置共享目录权限
[root@mzzz ~]# chmod 777 /opt/a1 [root@mzzz ~]# chmod 777 /opt/a2 [root@mzzz ~]# chmod 777 /opt/a3 [root@mzzz ~]# chmod 777 /opt/public [root@mzzz ~]# chmod 777 /var/www/linu.net
-
[root@mzzz ~]# systemctl start smb [root@mzzz ~]# systemctl start nmb [root@mzzz ~]# systemctl enable smb
三、# 使用客户机进行测试
四、注意:
- 打开windows命令行。
- 输入net use,就会显示出当前缓存的连接上列表。
- 根据列表,一个个删除连接: net use 远程连接名称 /del;或者一次性全部删除:net use * /del。
- 这样再次命令行输入samba服务地址的时候,就会重新让你输入访问的账户和密码了