一、 选题背景
在早期的网络世界中,文件数据在不同主机之间的传输大多是使用ftp,但是使用ftp服务传输档案使得我们无法直接修改主机上面的档案数据。NFS服务可以实现在客户端的机器上直接使用服务器上面的文件,但是NFS主要在unix系列操作系统上使用。windows上面也有类似的文件系统,那就是cifs(Common Internet File system,通用internet文件系统),cifs的最简单的用途就是“网上邻居”,但是cifs只能让windows机器沟通。所以,为了实现windows和unix系列系统之间能够相互沟通,就产生了samba服务。
samba是架构在NetBIOS(Network Basic Input/Output System,网上基本输入输出系统)这个通信协议上面所开发出来的。NetBIOS是由IBM发展出来,目的是要让局域网络内少数计算机进行网络连接的一个通信协议,因此NetBIOS是无法跨越路由的,而现在Samba不仅能与局域网主机分享资源,还能与全世界的电脑分享资源,就是由NetBIOS over TCP/IP技术解决。由于NetBIOS在局域网内实在是很好用,所以微软的网络架构就使用了这个协议。而samba最早发展的时候,其实是想要让linux系统可以加入windows的系统当中来共享使用彼此的文件数据,所以samba就架构在NetBIOS发展出来了。
Samba服务程序可以让我们在Linux系统与Windows系统之间共享文件,区别于FTP,Samba重于共享文件,而非传输文件,因此我们可以通过客户端直接在服务器上修改文件内容。在配置Samba服务程序之前,我们需要先配置yum软件仓库,然后使用yum来安装服务程序以及客户端。yum仓的配置方法跟前边讲过的一样,这里不再多做叙述,我们直接开始安装配置samba。然后我们需要用另外一台主机进行验证,可以直接再克隆一台虚拟机,然后根据需要修改主机名以及网络配置、IP地址等。
二、方法论证需求:
(1)设置公共目录,所有人可以访问,权限为只读;
(2)为结算中心(Sale)和技术部(Technology)分别建立单独的目录,只允许公司总经理(Manager)和对应部门员工访问;
(3)公司员工无法在“网络邻居”中查看到非本部门的共享目录。
samba功能
1、进行文件共享;
2、可以提供使用者登入samba主机时的身份认证,以提供不同身份的个别资料;
3、可以进行windows网络上的主机名称解析(NetBIOS name);
NetBIOS当初发展就着眼在局域网内的快速数据交流,而因为是定义在局域网内,因此它并没有使用类似TCP/IP之类的传输协议,也就不需要IP的设置。这样一来数据如何在两台主机间交流呢?其实主机在NetBIOS协议当中的定义为使用“NetBIOS Name”,每一台主机必须要有不同的NetBIOS Name才行。假设使用网上邻居来设置文件数据的访问,想要登录某台计算机使用它所提供的文件数据时,必须要加入该计算机的工作组,并且需要给自己的机器设置一个NetBIOS Name,在同一个组中,NetBIOS Name是独一无二的。是否能登录对方主机或者是使用对方主机所提供的资源,还要看对方主机有没有提供我们使用的权限。
samba通过两个服务来控制管理工作组和samba主机共享的目录,分别是:
nmbd:这个服务是来管理工作组、NetBIOS Name等的解析。主要利用UDP协议开启port137、port138来负责名称解析的任务。
smbd:这个服务的主要功能是用来管理samba主机共享的目录、文件与打印机等。主要利用可靠的TCP协议来传输数据,开放的端口为139和445(不一定存在)。
samba服务器的搭建
samba服务的相关软件包说明
samba:该软件主要提供了smb服务器所需的各项服务程序(smbd及nmbd)、相关的文件。
samba-client:这个软件提供了当linux作为samba client时,所需要的工具命令。例如挂载samba文件格式的mount.cifs。
samba-common:这个软件提供的则是服务器与客户端都会使用到的数据包括samba的主要配置文件(smb.conf)等。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oWOu1kWa-1653989366185)(未命名.assets/image-20220531171129999.png)]
三、过程论述此处服务端主机名为beer,IP为192.168.108.137
1.Samba共享服务的匿名访问 (1)安装Samba服务器软件包yum install samba -y ##安装Samba
服务截图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KwAuUgMz-1653989366186)(未命名.assets/image-20220531144928085.png)]
(2)关闭SELinux[root@Server ~]# vim /etc/selinux/config
[root@Server ~]# cat /etc/selinux/config | grep -v “#” | grep -v “^$”
SELINUX=disabled
SELINUXTYPE=targeted
[root@Server ~]# getenforce
Disabled
[root@Server ~]#
(3)防火墙放行Samba服务[root@Server ~]# firewall-cmd --permanent --add-service=“samba”
success
[root@Server ~]# firewall-cmd --reload
success
[root@Server ~]# firewall-cmd --list-all
public (default, active)
interfaces: eno16777736
sources:
services: dhcp dhcpv6-client samba ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root@Server ~]#
(4)配置开机自启动Samba服务[root@Server ~]# systemctl enable smb nmb ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service' ln -s '/usr/lib/systemd/system/nmb.service' '/etc/systemd/system/multi-user.target.wants/nmb.service' [root@Server ~]# systemctl restart smb nmb(5)创建相关的文件夹,并创建用户和组 1. 创建目录
mkdir /Public mkdir /Sale mkdir /Technology2.添加用户和组
groupadd Sale groupadd Technology3.创建Manager用户
useradd Manager4.添加用户到用户组
useradd -g Sale Sale1 useradd -g Technology Technology1 useradd Manager5.修改用户密码
passwd Manager passwd Sale1 passwd Technology16.修改权限
chmod 777 /Public chmod 777 /Sale chmod 777 /Technology7.创建samba用户
smbpasswd -a Manager smbpasswd -a Sale1 smbpasswd -a Technology1(6)配置Samba配置文件信息
[root@localhost~]# cd /etc/samba/ ##切换到Samba配置文件目录
[root@localhost samba]# mv smb.conf smb.conf.bak ##备份
[root@localhost samba]# grep -v “#” smb.conf.bak > smb.conf ##重新创建一个配置文件(除去注释的)
[root@localhost samba]# vim smb.conf ##修改配置文件
cd /etc/samba
sudo vim smb.conf
配置公共目录,再末尾添加:
[public]
conment = “Public Stuff”
path = /share
writable=yes
public=yes
sudo cp smb.conf Manager.smb.conf
sudo cp smb.conf Sale.smb.conf
sudo cp smb.conf Technology.smb.conf
vim /etc/samba/smb.conf
在[global]中加入:
include=/etc/samba/%U.smb.conf
include=/etc/samba/%G.smb.conf
sudo vim /etc/samba/Manager.smb.conf
[sales]
conment = sales
path = /sales
writable=yes
valid users = master
[tech]
comment = tech
path = /tech
writable=yes
valid users = master
sudo vim /etc/samba/Sale.smb.conf
[Sale]
conment = Sale
path = /Sale
writable=yes
valid users = @Sale, Manager
sudo vim /etc/samba/tech.smb.conf
[Technology]
comment = Technology
path = /Technology
writable=yes
valid users = @Technology, Manager
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
iptables -I INPUT -p tcp --dport 139 -j ACCEPT
systemctl restart smb
2.在windows上测试Windows客户端进行测试
在Windows客户端进行访问测试
在此电脑中输入192.168.108.137,进行访问测试
或Win + R输入192.168.108.137,进行访问测试
以不同的身份登入到Samba服务器,分别在不同的文件夹中创建文件,查看是否具有权限
创建完成后,可以在服务端,查看相应的目录下是否存在该文件,以及该文件的所有者信息
在Windows客户端访问后,需要切换账户登录,则需要退出登录
在CMD中执行net use * /del /y命令,以清除所有远程
四、结果分析进入smb.conf配置文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9UDsoFL2-1653989366187)(未命名.assets/image-20220531151919872.png)]
主机Manager账号登录服务器:
Manager账号可对public文件进行读写操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I3mgyAwH-1653989366188)(未命名.assets/image-20220531153254060.png)]
Manager账号可对Sale文件进行读写操作:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S0RRAfqR-1653989366189)(未命名.assets/image-20220531153758754.png)]
Manager账号可对Technology文件进行读写操:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dQ9bH4OX-1653989366189)(未命名.assets/image-20220531153829256.png)]
本地账号Sale使用Sale1账号登录服务器:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FyLXdAXw-1653989366190)(未命名.assets/image-20220531160651459.png)]
Sale1账号对public文件只能读不能写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-348JhRYS-1653989366191)(未命名.assets/image-20220531161959546.png)]
Sale1账号对Sale文件可读写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xgndH22m-1653989366191)(未命名.assets/image-20220531162023038.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iwtEqaSl-1653989366192)(未命名.assets/image-20220531165924160.png)]
Technology1账号对public文件只能读不能写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6OJKkVbZ-1653989366193)(未命名.assets/image-20220531165949149.png)]
Technology1账号对Technology文件能读写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FcWi7wlq-1653989366193)(未命名.assets/image-20220531170018643.png)]
五、课程设计总结 本次实验遇到许许多多小问题,先在网上查阅大量资料,回来一步步的参考配置。其中最难的还是samba的配置文件smb.conf,在这上面花了大量的时间,从配置文件里学习了配置文件的很多语法配置与逻辑思维,同时还复习了liunx的操作命令,用户组的增删改查等等。最后就是遇到报错信息一定要学会查资料,要多翻阅,注意好文件的备份处理。
*参考文献*REHL7.4配置Samba服务实验
原文链接:https://blog.csdn.net/qq_21007661/article/details/116616468
Samba只对某一用户显示共享目录的设置
https://wenku.baidu.com/view/a0937ff2a68da0116c175f0e7cd184254b351bb4.html
linux命令中的%U是什么意思
https://zhidao.baidu.com/question/1431606369299384659.html?qbl=relate_question_0&word=liunx%D6%D0%25U%20%CE%C4%BC%FE%D2%FD%D3%C3
Linux Samba服务主配文件smb.conf中文详解【转】
处理。
*参考文献*REHL7.4配置Samba服务实验
原文链接:https://blog.csdn.net/qq_21007661/article/details/116616468
Samba只对某一用户显示共享目录的设置
https://wenku.baidu.com/view/a0937ff2a68da0116c175f0e7cd184254b351bb4.html
linux命令中的%U是什么意思
https://zhidao.baidu.com/question/1431606369299384659.html?qbl=relate_question_0&word=liunx%D6%D0%25U%20%CE%C4%BC%FE%D2%FD%D3%C3
Linux Samba服务主配文件smb.conf中文详解【转】
https://www.bbsmax.com/A/WpdK7BpodV/



