Linux基础项目包含(DNS,FTP,Samba)

今天我们来实现一个linux的基础项目,多做项目可以加深我们对每个服务的掌握程度,能更加的熟悉各个服务的使用,以及每个服务之间如何相互应用,我们可以有一个清晰的认知,那么接下来我们就开始项目的实操。

一、 项目背景介绍

某游戏创业公司刚成立,初期计划招收的人员较少。为满足公司业务发展和运营需求,决定基于Linux服务器和免配置交换机部署一个小型局域网。使用Linux服务器提供各种基础网络服务,以实现企业内部的数据通信和资源共享

二、 网络拓扑


三、 项目需求介绍

1. DNS服务器

配置DNS服务器的A记录

  • ftp.test.com指向FTP服务器192.168.180.120
  • samba.test.com指向Samba服务器192.168.180.130

2. FTP服务器

  • 安装FTP服务器时,创建虚拟账号vsftpd
  • 将目录设置为/var/ftp/pub,并对目录设置vsftpd属主属组

准备文件共享磁盘

  • 挂载一块新磁盘/dev/sdb,使用LVM方式对磁盘进行管理
  • 分别创建PV、卷组和逻辑卷,将磁盘分区格式化后挂载到/data目录下
  • 创建虚拟用户oppic,将/data目录作为文件存储目录

3. Samba服务器

准备单独的文件共享磁盘

  • 挂载一块新磁盘/dev/sdb,分区并格式化(xfs)
  • 开机自动挂载到/data目录

为Samba服务创建用户和组

  • john用户属于manager经理组,对/data/manager目录拥有读写权限
  • mike用户属于market市场组,对/data/market目录拥有读写权限
  • admin用户属于管理员组,对上述两个目录均拥有读写权限

在每一个服务的搭建之前,我们可以习惯性的把防火墙都关闭,并且把每台主机名称修改一下,方便后续的操作。

每做完一个实验都可以写一份属于自己的实验操作文档,当下一次想要拿出来温习的时候,就可以照着自己的实验文档照着写,不仅方便,还可以巩固。并且忘了哪一步操作的时候也可以随时翻出来查看,每一篇操作文档都很重要,可以好好保存起来。

四、 实操过程

1. 全部关闭防火墙

systemctl stop firewalld
setenforce 0

2. 修改主机名称

//192.168.180.110
hostnamectl set-hostname DNS-server && bash//192.168.180.120
hostnamectl set-hostname FTP-server && bash//192.168.180.130
hostnamectl set-hostname samba-server && bash

3. 在这个实验当中,可以全部使用本地yum源,会方便些,本地yum的具体操作可以查看我之前的博客本地yum源搭建icon-default.png?t=O83Ahttps://blog.csdn.net/m0_68472908/article/details/143856929?spm=1001.2014.3001.5501


DNS-server:192.168.180.110

1. 安装DNS

yum install -y bind bind-utils

2. 配置主配置文件

vim /etc/named.confzone "test.com" IN {type master;file "test.com.zone";
};

全部修改为“any“

在文件后面添加内容

3. 配置正向区域文件

cd /var/named/
cp -p named.empty test.com.zone
vim test.com.zoneNS      ns1.test.com.
ns1     IN      A       192.168.180.110
ftp     IN      A       192.168.180.120
samba   IN      A       192.168.180.130

注意!!不要忘记了ns1.test.com. 最后这个点“.

4. 开启服务

systemctl start named

5. 配置resolv文件,将DNS指向自己

vim /etc/resolv.conf 

6. 测试DNS解析,能够解析成功


FTP-server:192.168.180.130

1. 安装软件        //因为我拿本机当作客户端验证,所以也安装了客户端工具ftp

yum install -y vsftpd ftp

2. 创建虚拟用户文件

cd /etc/vsftpd/
vim vusers.list

这里的vsftpd和oppic是项目要求

abc-123是密码,可以自己定义

3. 将用户文件转换为数据库文件

db_load -T -t hash -f vusers.list vusers.db

4. 修改文件权限

chmod 600 vusers.*

5. 创建映射用户

useradd -d /var/ftp/pub -s /sbin/nologin test1

6. 创建共享文件目录

mkdir /data

7. 设置共享目录权限

chmod 755 /var/ftp/pub/
chmod 755 /data/

8. 设置PAM认证文件

vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth    required        pam_userdb.so   db=/etc/vsftpd/vusers
account required        pam_userdb.so   db=/etc/vsftpd/vusers

9. 配置主配置文件

vim /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=test1
anon_umask=022
user_config_dir=/etc/vsftpd/vusers_dir
allow_writeable_chroot=YES

修改为NO,并添加内容

在文件的最后面要记得把pam认证要修改,修改为我们创建的那么pam认证文件的名字

10. 创建虚拟用户权限存放目录

mkdir /etc/vsftpd/vusers_dir
cd /etc/vsftpd/vusers_dir/
touch vsftpd oppic
vim oppiclocal_root=/data
anon_upload_enable=YES
anon_mkdir_write_enable=YESvim vsftpdlocal_root=/var/ftp/pub
anon_upload_enable=YES
anon_mkdir_write_enable=YES

local_root=/data:宿主目录存放处

anon_upload_enable=YES:允许匿名用户上传文件

anon_mkdir_write_enable=YES:允许创建目录,并具有写入权限

11. 开启服务

systemctl start vsftpd

12. 设置LVM卷(提前添加好新的磁盘)

//分区
fdisk /dev/sdb//创建物理卷
pvcreate /dev/sdb1//创建卷组
vgcreate vg_data /dev/sdb1//创建逻辑卷
lvcreate -l 100%FREE -n lv_data vg_data//格式化为XFS格式
mkfs.xfs /dev/vg_data/lv_data//挂载
mount /dev/vg_data/lv_data /data//自动挂载
vim /etc/fstab/dev/vg_data/lv_data /data xfs defaults 0 0

13. 添加DNS记录,方便域名访问

vim /etc/resolv.conf

14. 访问测试,两个访问都能成功

分别创建测试文件

进行访问-先用oppic进行测试,使用域名进行访问

用vsftpd访问


samba-server:192.168.180.130

1. 安装软件

yum install -y samba

2. 挂载新磁盘,并格式化,自动挂载

fdisk /dev/sdb
mkfs.xfs /dev/sdb1
mkdir /data
mount /dev/sdb1 /data
vim /etc/fstab
/dev/sdb1       /data   xfs     defaults        0       0

3. 创建用户,并添加至对应的组,并且将系统用户转换为samba用户

//创建系统用户
useradd john
passwd john
useradd mike
passwd mike
useradd admin
passwd admin//创建组
groupadd manager
groupadd market//创建目录
mkdir /data/manager
mkdir /data/market//将用户加入至对应的组
gpasswd -a john manager
gpasswd -a mike market
usermod -a -G manager,market admin//授予权限
chown -R :manager /data/manager
chmod -R 770 /data/manager/
chown -R :market /data/market/
chmod -R 770 /data/market///将系统用户转换为samba用户
pdbedit -a -u john
pdbedit -a -u mike
pdbedit -a -u admin

4. 配置主配置文件

vim /etc/samba/smb.conf
[manager]comment = Manager Sharepath = /data/managervalid users = @manager,@adminwritable = yescreate mask = 0770directory mask = 0770force create mode = 0770force directory mode = 0770[market]comment = Market Sharepath = /data/marketvalid users = @market,@adminwritable = yescreate mask = 0770directory mask = 0770force create mode = 0770
force directory mode = 0770

5. 创建测试文件,在/data/manager目录创建测试文件sa.txt,并写入“samba test.”内容

cd /data/manager/
vim sa.txt

6. 将/var/log/secure文件复制到/data/market目录下

cp /var/log/secure /data/market/

7. 配置resolv文件

vim /etc/resolv.conf 

8. 开启服务

systemctl start smb

9. 在客户端上使用john和admin用户访问”\\samba.test.com”,查看测试文件sa.txt(我这里使用的是真机)

使用john访问

可以查看到该文件

不能访问market文件


可以使用net use * /del,用户删除cmd的缓存


使用admin用户访问

两个文件都可查看

10. 在客户端上使用mike用户mount挂载到本地的目录,“mount -t cifs //samba.abc.com/market /opt/market -o username=mike,password=123456”,查看测试文件secure

因为windows的客户端不能使用这条命令,所以使用另外一种方法也可以访问进去

右击此电脑,点击映射网络驱动器

输入:\\samba.test.com\market

输入mike用户登录

登陆成功!!!


问题!!!

如果当我们访问的时候可能会出现这个错误,这个问题是因为我们之前用过john和admin用户登陆过,他有记录缓存,其实很简单,只需要把缓存清一下就可以了


到这里实验就完美结束了!!!

如果对你有帮助就请点个赞吧⭐⭐⭐

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/480336.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙面试 --- 性能优化

性能优化可以从三个方面入手 感知流畅、渲染性能、运行性能 感知流畅 在应用开发中,动画可以为用户界面增添生动、流畅的交互效果,提升用户对应用的好感度。然而,滥用动画也会导致应用性能下降,消耗过多的系统资源,…

UWB数字钥匙安全测距和场景应用

1. CCC数字钥匙 2021年7月CCC将UWB定义为第三代数字钥匙的核心技术,并发布CCC R3(第三代数字钥匙)规范。 CCC R3是基于NFC/BLE/UWB作为基础的无线电技术的使用,该系统采用非对称密码技术对车辆和设备进行相互签名认证&#xff0…

使用Compose Multiplatform开发跨平台的Android调试工具

背景 最近对CMP跨平台很感兴趣,为了练手,在移动端做了一个Android和IOS共享UI和逻辑代码的天气软件,简单适配了一下双端的深浅主题切换,网络状态监测,刷新调用振动器接口。 做了两年多车机Android开发,偶…

ubuntu22开机自动登陆和开机自动运行google浏览器自动打开网页

一、开机自动登陆 1、打开settings->点击Users 重启系统即可自动登陆桌面 二、开机自动运行google浏览器自动打开网页 1、安装google浏览器 sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg -i ./google-chrome-stable…

前端学习笔记之文件下载(1.0)

因为要用到这样一个场景,需要下载系统的使用教程,所以在前端项目中就提供了一个能够下载系统教程的一个按钮,供使用者进行下载。 所以就试着写一下这个功能,以一个demo的形式进行演示,在学习的过程中也发现了中文路径…

FPGA实现GTP光口视频转USB3.0传输,基于FT601+Aurora 8b/10b编解码架构,提供3套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的 GT 高速接口解决方案本博已有的FPGA驱动USB通信方案 3、工程详细设计方案工程设计原理框图输入Sensor之-->OV5640摄像头输入Sensor之-->芯片解码的…

借助nntools的模型训练(图像去噪任务, PyTorch)

在跑通开源代码的过程中,一直难以找到很合适的代码框架或代码模板,尤其对于初学者而言是不小的挑战。本人在跑代码的过程中,发现在GitHub上有一个辅助训练过程的模板。这篇文章主要记录它的使用方法,并标记来源。 代码均在jupyter…

C# 常量

文章目录 前言一、整数常量(一)合法与非法实例对比(二)不同进制及类型示例 二、浮点常量三、字符常量四、字符串常量五、定义常量 前言 在 C# 编程的世界里,常量是一类特殊的数据元素,它们如同程序中的 “定…

PHP 生成分享海报

因为用户端有多个平台,如果做分享海报生成,需要三端都来做,工作量比较大。 所以这个艰巨的任务就光荣的交给后端了。经过一定时间的研究和调试,最终圆满完成了任务,生成分享海报图片实现笔记如下。 目录 准备字体文件…

探索Python词云库WordCloud的奥秘

文章目录 探索Python词云库WordCloud的奥秘1. 背景介绍:为何选择WordCloud?2. WordCloud库简介3. 安装WordCloud库4. 简单函数使用方法5. 应用场景示例6. 常见Bug及解决方案7. 总结 探索Python词云库WordCloud的奥秘 1. 背景介绍:为何选择Wo…

git 学习笔记

目录 一、git 前期配置准备 1、托管平台的账号注册(以gitee码云为demo) 2、本地个人电脑配置 (1)配置用户属性 ​编辑 (2)配置SSH密钥 二、git 工作流程图 三、git 提交命令 (1&#x…

uniapp中使用uni-forms实现表单管理,验证表单

前言 uni-forms 是一个用于表单管理的组件。它提供了一种简化和统一的方式来处理表单数据,包括表单验证、字段绑定和提交逻辑等。使用 uni-forms可以方便地创建各种类型的表单,支持数据双向绑定,可以与其他组件及API进行良好的集成。开发者可…

_C#_串口助手_字符串拼接缺失问题(未知原理)

最近使用WPF开发串口助手时,遇到一个很奇怪的问题,无论是主线程、异步还是多线程,当串口接收速度达到0.016s一次以上,就会发生字符串缺失问题并且很卡。而0.016s就一切如常,仿佛0.015s与0.016s是天堑之隔。 同一份代码…

JVM(JAVA虚拟机)内存溢出导致内存不足,Java运行时环境无法继续

1、先贴出服务最后打印出来的日志,意思就是给虚拟机分配的内存被用完了,没有可用的内存了,服务运行不了了,被动停服了。详细的日志记录在了/home/user/zx/tomcat/apache-tomcat-8.5.82/bin/hs_err_pid147951.log文件里。 Java Ho…

OGRE 3D----3. OGRE绘制自定义模型

在使用OGRE进行开发时,绘制自定义模型是一个常见的需求。本文将介绍如何使用OGRE的ManualObject类来创建和绘制自定义模型。通过ManualObject,开发者可以直接定义顶点、法线、纹理坐标等,从而灵活地构建各种复杂的几何体。 Ogre::ManualObject 是 Ogre3D 引擎中的一个类,用…

Spring Boot英语知识网站:架构与开发

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…

如何借助AI生成PPT,让创作轻松又高效

PPT是现代职场中不可或缺的表达工具,但同时也可能是令人抓狂的时间杀手。几页幻灯片的制作,常常需要花费数小时调整字体、配色与排版。AI的飞速发展为我们带来了革新——AI生成PPT的技术不仅让制作流程大大简化,还重新定义了效率与创意的关系…

Unity ShaderLab 实现网格爆炸

实现思路: 沿着3D物体每个面的法线,将面偏移一定的位置。 Shader Graph实现如下: Shader Lab 实现如下: Shader "Unlit/MeshExplode" {Properties{_MainTex ("Texture", 2D) "white" {}_Distan…

阅读《基于蒙特卡洛法的破片打击无人机易损性分析》_笔记

目录 基本信息 1 引言 1.1 主要研究内容 1.2 研究必要性(为什么要研究) 1.3 该领域研究现状(别人做了什么/怎么做的) 2 主要研究过程(我们做了什么) 2.1 建立目标仿真模型 2.2 确定毁伤依据 2.3 无…

如何让控件始终处于父容器的居中位置(父容器可任意改变大小)

1、改变父容器大小前 父容器是一个panel,控件是一个按钮button1 1)刚开始让button1的左边距离panel的左边缘和button1的右边距离panel的右边缘两个距离相等; 2)将button1的Anchor属性设置为None 2、改变父容器大小后 直接改变…