Linux网络系列--Samba服务(samba的安装、配置及使用、Windows7的samba配置)

一、 什么是Samba?

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
Samba基于Client\Server型的协议,Client端可以通过SMB访问到Server(服务器)上的共享资源。当Windows是 Client,CentOS是服务器时,通过Samba就可以实现window访问Linux的资源,实现两个系统间的数据交互。

1.1 Samba的安装

centos6版本中,在我们安装Linux系统的光盘镜像文件中,就有samba的安装包,我们可以使用rpm -ivh的防止直接安装。
但是在centos7的版本中,使用rpm -ivh的方式需要安装大量的依赖包,所以我们直接可以使用"yum -y install samba"安装。

在这里插入图片描述

二 、关于samba的使用与配置实验

实验目的

实现局域网内的不同计算机的资源共享服务。

实验环境

VMware中一台centos7虚拟机、一台win7虚拟机,两台虚拟机在一个局域网

实验参数

centos7虚拟机:
IP地址:14.0.0.17
子网掩码:255.0.0.0
win7虚拟机:
IP地址:14.0.0.18
子网掩码:255.0.0.0

实验过程

首先我们应该知道的是samba的配置文件在/etc/samba/smb.conf中,同时还有一个示例文件 smb.conf.example

[root@localhost ~]# cd /etc/samba/
lmhosts           smb.conf          smb.conf.example 

在我们对配置文件要有修改时,我们一定要记住要做的第一件事就是将配置文件备份,实验过程以修改示例文件演示。

[root@localhost samba]# mv smb.conf /opt/smb.conf.bak   将原来的配置文件备份到/opt目录下
[root@localhost samba]# ls
lmhosts  smb.conf.example
[root@localhost samba]# grep -v "#" smb.conf.example > smb.conf   过滤出示例文件中不含“#”的文件并注入到smb.conf(这里的smb.conf文件就是我们新生成的配置文件)
[root@localhost samba]# ls
lmhosts  smb.conf  smb.conf.example

匿名访问

[root@localhost samba]# vi smb.conf    编辑配置文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后在配置文件的末尾写入share的内容
在这里插入图片描述

		[share]
        path=/opt/abc         指定文件的路径
        public=yes            公共访问
        browseable=yes        能够访问
        writable=yes          能够写入
        create mask=0644      赋予文件权限
        directory mask=0755   赋予目录权限

接下来创建目录abc并提升权限至最大。

[root@localhost samba]# ls /opt
 smb.conf.bak
[root@localhost samba]# mkdir /opt/abc    创建目录
[root@localhost samba]# ls /opt
 abc  smb.conf.bak
[root@localhost samba]# chmod 777 /opt/abc/   将abc目录提升权限到777
[root@localhost samba]# systemctl stop firewalld   关闭防火墙
[root@localhost samba]# setenforce 0    关闭内核防护
[root@localhost samba]# systemctl start smb    开启smb服务

我们在win7虚拟机中,就可以访问到共享服务了
在这里插入图片描述
在这里插入图片描述
还可以对读写功能进行测试,在win7的share文件夹下,写入一个文本,文本内容为“this is share”,并命名这个文件名为“new”。
在这里插入图片描述
进服务器查看新建的文件,并查看文件的详细信息。所谓的匿名访问就是通过服务器内的一个程序用户"nobody"进行访问

[root@localhost samba]# cat /opt/abc/new.txt 
this is share[root@localhost samba]# 
[root@localhost samba]# ll /opt/abc/new.txt    查看新建文件的详细信息,属主属组都是nobody,实现了匿名访问
-rw-r--r--. 1 nobody nobody 13 7  19 15:52 /opt/abc/new.txt

身份验证

在这里插入图片描述

[root@localhost samba]# vi smb.conf          //修改配置文件
        [test]
        path = /opt/test     
        browseable = yes
        create mask = 0644
        directory mask = 0755
        valid users = shi, zhangsan     允许zhangsan、shi用户进行访问
        write list = zhangsan     仅允许zhangsan对文件进行写入 
[root@localhost samba]# id zhangsan
id: zhangsan: no such user
[root@localhost samba]# id shi
uid=1000(shi) gid=1000(shi) =1000(shi)
[root@localhost samba]# useradd zhangsan      添加用户zhangsan
[root@localhost samba]# smbpasswd -a zhangsan   验证samba的密码
New SMB password:
Retype new SMB password:
Added user zhangsan.
[root@localhost samba]# pdbedit -L    看samba用户
zhangsan:1024:
[root@localhost samba]# cd /opt
[root@localhost opt]# mkdir test
[root@localhost opt]# chmod 777 test/
[root@localhost opt]# ls
1.txt  abc  file-1594881718.tar.gz  id_ecdsa.pub  smb.conf.bak  test
[root@localhost opt]# systemctl restart smb    //重启服务

接下来在win7内进行测试
在这里插入图片描述
同样的输入要访问的服务器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发现我们无法登录,因为我们没有为该用户设置samba密码。
在这里插入图片描述
所以我们用zhangsan用户登录
在这里插入图片描述
我们进行文件写入测试
在这里插入图片描述

[root@localhost test]# ll /opt/test/
总用量 4
-rw-r--r--. 1 zhangsan zhangsan 12 7  19 16:25 new2.txt
[root@localhost test]# cat new2.txt 
this is new2[root@localhost test]# 

访问控制列表

在身份验证的配置文件的基础上加上一条

host deny = 14.0.0.     拒绝14.0.0.0网段的所有主机访问,可以同时拒绝多个网段,中间用空格分隔

在这里插入图片描述

[root@localhost samba]# systemctl restart smb   重启服务

进入win7测试
清空缓存
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Linux共享windows7文件配置

Linux作为客户机
[root@localhost samba]# mkdir /ck    在根目录下创建一个目录ck
[root@localhost samba]# ls /
bin   ck   etc   ipadds.txt  lib64  mnt  proc  run   srv  tmp  var
boot  dev  home  lib         media  opt  root  sbin  sys  usr

win7配置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[root@localhost samba]# yum -y install samba-client samba-common cifs-utils samba   安装smbclient,可以使用smbclient命令
[root@localhost samba]# smbclient -L 14.0.0.18   远程连接win7主机
Enter MYGROUP\root's password:      密码为空

	Sharename       Type      Comment
	---------       ----      -------
	ADMIN$          Disk      远程管理
	C$              Disk      默认共享
	IPC$            IPC       远程 IPC
	project         Disk      
	Users           Disk      
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 14.0.0.18 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Unable to connect with SMB1 -- no workgroup available
[root@localhost samba]# mount.cifs //14.0.0.18/project /ck    将win7主机中的文件夹project挂载到之前创建的/ck目录下
Password for root@//14.0.0.18/project:     密码为空
[root@localhost samba]# df -h    查看挂载情况
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  1.2G   49G    3% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G   12M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M   15% /boot
/dev/mapper/centos-home   46G   33M   46G    1% /home
tmpfs                    378M     0  378M    0% /run/user/0
/dev/sr0                 4.3G  4.3G     0  100% /mnt
//14.0.0.18/project      300G   14G  287G    5% /ck
[root@localhost samba]# cat /ck
cat: /ck: 是一个目录
[root@localhost samba]# cat /ck/project1.txt 

猜你喜欢

转载自blog.csdn.net/kimowinter/article/details/107367854