linux系统服务学习(六)FTP服务学习

文章目录

  • FTP、NFS、SAMBA系统服务
  • 一、FTP服务概述
    • 1、FTP服务介绍
    • 2、FTP服务的客户端工具
    • 3、FTP的两种运行模式(了解)
      • ☆ 主动模式
      • ☆ 被动模式
    • 4、搭建FTP服务(重要)
    • 5、FTP的配置文件详解(重要)
  • 二、FTP任务解决方案
    • 1、任务背景
    • 2、创建账号(Server)--用于其他人登录ftp服务
    • 3、不允许匿名用户访问
    • 4、指定账号访问的目录
    • 5、限定kefu/123只能在/data/kefu目录下活动
  • 四、经验值
    • 1、500 OOPS
    • 2、无法上传
    • 3、禁锢目录补充
  • 三、FTP服务工具
    • 1、Linux下ftp客户端管理工具
      • ☆ ftp工具
      • ☆ lftp工具:批量操作
    • 2、FTP知识点补充
      • ☆ FTP访问对象控制(黑名单)
      • ☆ FTP网络访问控制(限IP+限速)
        • ☆ 限制IP地址
        • ☆ 限制FTP流量
    • 四、完整的ftp服务配置步骤--非脚本
    • 五、练习


FTP、NFS、SAMBA系统服务

一、FTP服务概述

1、FTP服务介绍

FTP(File Transfer Protocol)是一种应用非常广泛并且古老的一个互联网文件传输协议。

文件传输:文件上传与文件下载

在这里插入图片描述

  • 主要用于互联网中文件的双向传输(上传/下载)、文件共享
  • 跨平台 Linux、Windows
  • FTP是C/S架构,拥有一个客户端和服务端,使用TCP协议作为底层传输协议,提供可靠的数据传输
  • FTP的默认端口 21号(命令端口) 20号(数据端口,主动模式下) 默认被动模式
  • FTP程序(软件)vsftpd

FTP软件名称 => vsftpd => vs(very secure ftp daemon)

2、FTP服务的客户端工具

  • Linux:ftp、lftp(客户端程序)
  • Windows:FlashFXP(虚拟主机)、FileZilla、IE、Chrome、Firefox
  • lftp和ftp工具区别:
    • lftp:默认是以匿名用户访问
    • ftp:默认是以用户名/密码方式访问
    • lftp可以批量并且下载目录

3、FTP的两种运行模式(了解)

在FTP服务中,其一共拥有两种模式(主动模式 + 被动模式)

参考点,FTP的服务器端。如果是FTP服务器端主动连接客户端=>主动模式,如果是客户端主动连接FTP服务器端=>被动模式。

☆ 主动模式

在这里插入图片描述

cmd:命令端口(发送FTP请求)

data:数据端口(后期用于传输数据)

1. 客户端打开大于1023的随机命令端口和大于1023的随机数据端口向服务的的21号端口发起请求
2. 服务端的21号命令端口响应客户端的随机命令端口
3. 服务端的20号端口主动请求连接客户端的随机数据端口
4. 客户端的随机数据端口进行确认

☆ 被动模式

在这里插入图片描述

1. 客户端打开大于1023的随机命令端口和大于1023的随机数据端口向服务的的21号端口发起请求
2. 服务端的21号命令端口响应客户端的随机命令端口
3. 客户端主动连接服务端打开的大于1023的随机数据端口
4. 服务端进行确认

FTP默认使用的就是被动模式!

4、搭建FTP服务(重要)

1. 关闭防火墙和selinux
2. 配置yum源(mount /dev/sr0 /mnt)
3. 软件三部曲
4. 了解配置文件
5. 根据需求修改配置文件来完成服务的搭建
6. 启动服务,开机自启动
7. 测试验证

第一步:关闭防火墙与SELinux

# systemctl stop firewalld
# systemctl disable firewalld# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

第二步:配置YUM源

有网配置公网YUM源(阿里、清华、华为),没网就配置本地YUM源
这里用公网阿里云
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache

第三步:安装vsftpd软件(FTP => vsftpd)

# yum install vsftpd -y
这里需要一些环境,如果报错的话
# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel

第四步:启动ftp服务并添加到开机启动项中

# systemctl start vsftpd
# systemctl enable vsftpd

第五步:测试FTP是否安装成功

☆ 基于Windows资源管理器的访问

在我的电脑上,输入栏里:ftp://192.168.1.12

☆ 基于FlashFxp、FileZilla软件

在这里插入图片描述

☆ 基于ftp以及lftp命令进行连接(Linux与Linux之间的FTP文件传输)

 yum install ftp lftp -y
# ftp 192.168.1.12单个文件:
上传: put 文件名
下载: get 文件名多个文件:
上传多个文件(支持通配符):mput 文件名1 文件名2
下载多个文件(支持通配符):mget 文件名1 文件名2整个目录:
上传文件夹:mirror -R 文件夹名
下载文件夹:mirror 下载文件夹存放到本地目录的位置lftp是一个功能强大的下载工具,它支持访问文件的协议:ftp,sftp, ftps, http, hftp, fish.(其中ftps和https需要在编译的时候包含openss库)。lftp的界面和shell很像:有命令补全功能,历史记录,允许多个后台任务执行等功能,使用起来比较疯便。而且它还具有书签,排队,镜像,断点续传,多进程下载等功能。1、登录ftp
//命令格式:
lftp用户名:密码@ftp地址:传送端口(默认为21)用法
(1)lftp username:password@127.0.0.0 回车
(2)lftp username@127.0.0.0 回车 #默认端口为21 ,回车后输入密码
(3)lftp 127.0.0.0 回车  ##回车后 login [] 登录
(4)lftp 回车 -->open 127.0.0.0-->login 登录
//如果在命令行中输入站点的名称,lftp将直接登录站点
如:ivy@ivy-OptiPlex-380:~$ lftp ftp://androidftp:androidftp@192.168.12.76/
cd 成功, 当前目录=/
lftp androidftp@192.168.12.76:/>
//如果不在命令行输入站点名称,则必须在进入到ftp界面后用open命令打开2、下载文件
下载文件前首先要设置还本地的目录,用来存放下载的文件
lcd /home/ivy/doc   ##设置本地存放目录get  filename (如1.txt,ppt, pdf) //下载单个文件mget *.txt                   //下载一组文件,也即是批量下载所有的txt文件
get -c 1.txt                    //断点续传下载
mget -c *.txt                   //断点续传
pget -c n 10 file.dat  //最多10个线程以允许断点续传的方式下载file.dat
mget -d dirname/(通配符*)    //下载目录
mirror dirname         //将目录的整个下载下来,子目录也会自动复制到,本地自动建立目录3、 上传文件put  1.txt
mput *.txt
mirror -R miao //上传整个目录
mput -d dirname/*   #上传目录
!ls浏览本体目录
cd切换到远端目录(lcd 切换到本地目录)
基本使用方法:
1)、下载服务器端文件:
# mirror –vn RCD LCD   //RCD为远程路径,LCD为本地路径
2)、上传文件:
# mirror –R LCD RCD4.从远程主机上下载目录文件通过sftp下载目录:
lftp sftp://user@host -p port         lftp :> mirror my_path

5、FTP的配置文件详解(重要)

在Server服务器端,使用rpm -ql vsftpd

# rpm -ql vsftpd
/usr/lib/systemd/system/vsftpd.service	启动脚本
/etc/vsftpd								配置文件的目录
/etc/vsftpd/ftpusers				    用户列表文件,黑名单
/etc/vsftpd/user_list				    用户列表文件,可黑可白(默认是黑名单)
/etc/vsftpd/vsftpd.conf					配置文件(主配置文件)
/usr/sbin/vsftpd						程序本身(二进制的命令)
/var/ftp								匿名用户的默认数据根目录
/var/ftp/pub							匿名用户的扩展数据目录

vsftpd配置文件详解:

# grep -v ^# /etc/vsftpd/vsftpd.conf
anonymous_enable=YES			支持匿名用户访问	
local_enable=YES				支持非匿名用户,普通账号登录,默认进入到自己家目录
write_enable=YES				写总开关
local_umask=022					反掩码  file:644  rw- r-- r-- dir:755
dirmessage_enable=YES			启用消息功能
xferlog_enable=YES				开启或启用xferlog日志
connect_from_port_20=YES		支持主动模式(默认被动模式)
xferlog_std_format=YES			xferlog日志格式
listen=YES					    ftp服务独立模式下的监听pam_service_name=vsftpd			指定认证文件
userlist_enable=YES				启用用户列表
tcp_wrappers=YES				支持tcp_wrappers功能(FTP限速操作)

# man 5 vsftpd.conf

二、FTP任务解决方案

1、任务背景

简单来说:根据我们所学的内容(FTP)搭建一个客户服务系统(主要涉及客服资料上传与下载)

1. 客服人员必须使用用户名密码(kefu/123)的方式登录服务器来下载相应文档
2. 不允许匿名用户访问
3. 客服部门的相关文档保存在指定的目录里/data/kefu    local_root=/data/kefu
4. 客服用户使用用户kefu/123登录后就只能在默认的/data/kefu目录里活动

2、创建账号(Server)–用于其他人登录ftp服务

# useradd wu
# echo 123 |passwd --stdin wu

3、不允许匿名用户访问

# vim /etc/vsftpd/vsftpd.conf
12行 anonymous_enable=NOlisten=YES	 改成yes    115
listen_ipv6=YES   删掉   124

配置修改完毕后,一定要重启vsftpd服务

# systemctl restart vsftpd

4、指定账号访问的目录

# mkdir /data/wu -p
# vim /etc/vsftpd/vsftpd.conf
17行 local_root=/data/kefu

5、限定kefu/123只能在/data/kefu目录下活动

禁锢kefu用户只能在/data/kefu目录下

# vim /etc/vsftp/vsftpd.conf
18行 chroot_local_user=YES

配置修改完毕后,一定要重启vsftpd服务

# systemctl restart vsftpd
完整配置	
anonymous_enable=NO    #禁止匿名用户访问	
local_enable=YES
write_enable=YES
local_root=/data/wu    #指定账号访问的目录
chroot_local_user=YES   #限定wu/123只能在/data/wu目录下活动
allow_writeable_chroot=YES  #版本问题,不添加会报错
local_umask=022
dirmessage_enable=YES    #启用消息功能
xferlog_enable=YES       #开启或启用xferlog日志
connect_from_port_20=YES   #支持主动模式(默认被动模式)
xferlog_std_format=YES
listen=YES                #ftp服务独立模式下的监听pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO       #开启白名单,黑名单
tcp_wrappers=YES

四、经验值

1、500 OOPS

在这里插入图片描述

以上问题主要出现在FTP2.3.5以后的版本中,当然你可以使用

# rpm -qi vsftpd 查看版本信息

解决方案:

① 去除写权限(治标不治本)

# chmod a-w /home/dhj

② 核心解决方案,添加一个选项

# vim /etc/vsftpd/vsftpd.conf
19行 allow_writeable_chroot=YES

② 核心解决方案,禁用一个选项

#listen_ipv6=YES

2、无法上传

之所以无法上传,主要原因在于kefu这个账号对于/data/kefu文件夹没有w写权限

# setfacl -R -m u:kefu:rwx /data/kefu
# systemctl restart vsftpd

3、禁锢目录补充

18行 chroot_local_user=YES  禁锢所有用户

需求:我们能不能给一小部分用户开通非禁锢权限。

# vim /etc/vsftpd/vsftpd.conf
105行 chroot_list_enable=YES					    开启用户列表文件
107行 chroot_list_file=/etc/vsftpd/chroot_list	指定用户列表文件echo wu >> /etc/vsftpd/chroot_list        代表客服这个账号不会被禁锢在指定目录# systemctl restart vsftpd

FTP、NFS以及SAMBA服务

三、FTP服务工具

1、Linux下ftp客户端管理工具

ftp、lftp都是Linux下ftp的客户端管理工具,但是需要独立安装

# yum install ftp lftp -y

☆ ftp工具

# ftp 192.168.1.12
Connected to 192.168.1.12 (192.168.1.12).
220 (vsFTPd 3.0.2)
Name (192.168.1.12:root): 输入FTP的账号331 Please specify the password.
Password: 输入FTP账号对应的密码230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

求帮助:

ftp> ?或help
Commands may be abbreviated.  Commands are:!               debug           mdir            sendport        site
$               dir             mget            put             size
account         disconnect      mkdir           pwd             status
append          exit            mls             quit            struct
ascii           form            mode            quote           system
bell            get             modtime         recv            sunique
binary          glob            mput            reget           tenex
bye             hash            newer           rstatus         tick
case            help            nmap            rhelp           trace
cd              idle            nlist           rename          type
cdup            image           ntrans          reset           user
chmod           lcd             open            restart         umask
close           ls              prompt          rmdir           verbose
cr              macdef          passive         runique         ?
delete          mdelete         proxy           send

第一个命令:ls命令

ftp> ls

查看当前连接的FTP目录下有哪些文件。

第三个命令:help命令

ftp> help put
put             send one file

第四个命令:put与get命令

ftp> put 本地文件路径+名称	 上传
ftp> get 远程文件路径+名称	 下载

第五个命令:批量上传或下载多个文件

ftp> mput 文件名称1 文件名称2 文件名称3 ...
ftp> mget 文件名称1 文件名称2 文件名称3 ...

第六个命令:quit命令

ftp> quit

☆ lftp工具:批量操作

# lftp 用户名称@远程IP地址
Password:用户名称对应的密码

求帮助:help

lftp> help

针对某个命令求帮助:help + 命令

lftp> help mirror

案例:批量上传(把shop文件夹上传到FTP服务器端)

lftp> mirror -R 本地文件夹名称

案例:批量下载(把整个FTP下载到本地)

lftp> mirror 远程FTP路径

2、FTP知识点补充

☆ FTP访问对象控制(黑名单)

ftpusers 黑名单

user_list 默认是黑名单(可以成为白名单)

案例:默认情况下,root账号是否允许登录FTP服务器

[root@localhost ftp]# ftp 192.168.1.12
220 (vsFTPd 3.0.2)
Name (192.168.1.12:root): root
530 Permission denied.
Login failed.
ftp>
原因:root用户在黑名单里/etc/vsftpd/ftpusers黑名单中

案例:user_list可以从黑名单变成白名单(允许某个用户登录FTP系统服务器)

user_list要成为白名单,需要再配置文件里增加:
userlist_deny=NO
注意:如果user_list是白名单,那么必须在该文件里的用户才可以访问ftp服务。

总结:

  1. 用户在ftpusers文件中,那么用户不能访问ftp服务器
  2. 用户在user_list文件中,如果该文件是白名单,那么====在该文件中的用户可以访问ftp服务
  3. 如果user_list文件是白名单,用户即在ftpusers中又在user_list中,那么ftpusers拒绝优先

☆ FTP网络访问控制(限IP+限速)

FTP必须支持tcp_wrappers

/etc/hosts.allow 允许

/etc/hosts.deny 拒绝

☆ 限制IP地址

案例:如何禁止某个IP或IP网段

# vim /etc/hosts.deny
服务程序:主机
vsftpd:all                        全部拒绝
vsftpd:all EXCEPT 192.168.0.2    拒绝所有除了192.168.0.2  
vsftpd:192.168.0.254			  拒绝单个IP地址vsftpd:192.168.0.254:allow  
//以上是允许192.168.0.254访问,类似/etc/hosts.allow里增加vsftpd:192.168.0.254vsftpd:192.168.0.0/255.255.255.0   拒绝某个网段
vsftpd:192.168.0.0/255.255.255.0 EXCEPT 192.168.0.254   拒绝某个网段,但是除了某个ip地址
注意:子网掩码不支持192.168.0.0/24这种写法vim /etc/hosts.deny
vsftpd,sshd:10.1.1.1

案例:如何判断某个服务是否支持tcp_wrappers

1)./configure –enable-libwrap 表示支持tcp_wrappers访问控制(源码安装看配置项)

2)rpm安装(也包括yum安装)

# ldd命令 +二进制程序,查询某个软件包含哪些模块

案例:查询vsftpd与sshd是否支持tcp_wrappers

# ldd /usr/sbin/vsftpd |grep libwrap*libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f2956480000)# ldd /usr/sbin/sshd |grep libwrap*libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f015ff29000)

☆ 限制FTP流量

# vim /etc/vsftpd/vsftpd.conf
local_max_rate=0
0代表不限速local_max_rate=数值 + 字节
local_max_rate=1024K

四、完整的ftp服务配置步骤–非脚本

登录用户 wu,zs,lisi,密码123

一、搭建ftp服务--创建指定用户在指定目录
1.关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled2.配置yum源
# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache3.服务器安装vsftpd软件
# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel
# yum install vsftpd -y
# systemctl start vsftpd
# systemctl enable vsftpd4.配置
# grep -v ^# /etc/vsftpd/vsftpd.conf>vsftpd.conf.1 
# vim vsftpd.conf.1
修改内容
anonymous_enable=NO    #禁止匿名用户访问	
local_enable=YES
write_enable=YES
local_root=/data/wu    #指定账号访问的目录
chroot_local_user=YES   #限定wu/123只能在/data/wu目录下活动
allow_writeable_chroot=YES  #版本问题,不添加会报错
local_umask=022
dirmessage_enable=YES    #启用消息功能
xferlog_enable=YES       #开启或启用xferlog日志
connect_from_port_20=YES   #支持主动模式(默认被动模式)
xferlog_std_format=YES
listen=YES                #ftp服务独立模式下的监听pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO       #开启白名单,黑名单
tcp_wrappers=YES排错指南
重启vsftpd服务时,报错
#systemctl status vsftpd 下面是failed ,
这里检查两个,一个是配置文件vsftpd.conf 一个是进程21
losf -i:21  直接kill   
配置文件检查里面是否有写错的地方,如果没有明显错误,就检查有没有空格,每行的后面也要检查#cat vsftpd.conf.1 >/etc/vsftpd/vsftpd.conf  
5.创建可登录用户和创建家目录--测试
# useradd wu
# useradd zs 
# useradd lisi
# echo 123 |passwd --stdin wu
# echo 123 |passwd --stdin zs
# echo 123 |passwd --stdin lisi 
# mkdir /data/wu -p
如果无法上传:# setfacl -R -m u:wu:rwx /data/wu	6.重启服务
# systemctl restart vsftpd
7.特殊权限用户
# vim /etc/vsftpd/vsftpd.conf
105行 chroot_list_enable=YES					    开启用户列表文件
107行 chroot_list_file=/etc/vsftpd/chroot_list	指定用户列表文件
echo wu >> /etc/vsftpd/chroot_list        代表wu这个账号不会被禁锢在指定目录
# systemctl restart vsftpd
二、windows链接和linux链接,上传下载文件
windows
浏览器、文件管理器
ftp://192.168.8.137   
要可以上网的地址
linux
1.下载ftp以及lftp
yum install ftp lftp -y
ftp 192.168.8.137
三、ftp客户端管理工具
1.ftp
单个文件:
上传: put 文件名
下载: get 文件名
多个文件:
上传多个文件(支持通配符):mput 文件名1 文件名2
下载多个文件(支持通配符):mget 文件名1 文件名2
整个目录:
上传文件夹:mirror -R 文件夹名
下载文件夹:mirror 下载文件夹存放到本地目录的位置
2.lftp工具:批量操作
针对某个命令求帮助:help + 命令
1、登录ftp
lftp用户名:密码@ftp地址:传送端口(默认为21)
lftp wu:123@192.168.8.137回车
2、下载文件
下载文件前首先要设置还本地的目录,用来存放下载的文件
lcd /home/ivy/doc   ##设置本地存放目录get  filename (如1.txt,ppt, pdf) 
//下载单个文件mget *.txt                   
//下载一组文件,也即是批量下载所有的txt文件
get -c 1.txt                    //断点续传下载
mget -c *.txt                   //断点续传
pget -c n 10 file.dat  //最多10个线程以允许断点续传的方式下载file.dat
mget -d dirname/(通配符*)    //下载目录
mirror dirname         //将目录的整个下载下来,子目录也会自动复制到,本地自动建立目录3、 上传文件put  1.txt
mput *.txt
mirror -R miao //上传整个目录
mput -d dirname/*   #上传目录
基本使用方法:
1)、下载服务器端文件:
# mirror –vn RCD LCD   //RCD为远程路径,LCD为本地路径
2)、上传文件:
# mirror –R LCD RCD4.从远程主机上下载目录文件通过sftp下载目录:
lftp sftp://user@host -p port         lftp :> mirror my_path四、黑名单白名单,网络限速,禁止ip,网段
1.ip
# vim /etc/hosts.deny
服务程序:主机
vsftpd:all                        全部拒绝
vsftpd:all EXCEPT 192.168.0.2    拒绝所有除了192.168.0.2  
vsftpd:192.168.0.254			  拒绝单个IP地址
vsftpd:192.168.0.254:allow  
//以上是允许192.168.0.254访问,类似/etc/hosts.allow里增加vsftpd:192.168.0.254
vsftpd:192.168.0.0/255.255.255.0   拒绝某个网段
vsftpd:192.168.0.0/255.255.255.0 EXCEPT 192.168.0.254   拒绝某个网段,但是除了某个ip地址
注意:子网掩码不支持192.168.0.0/24这种写法
vim /etc/hosts.deny
vsftpd,sshd:10.1.1.1
2.黑名单,白名单
ftpusers		黑名单	
user_list		默认是黑名单(可以成为白名单)
user_list要成为白名单,需要再配置文件里增加:
userlist_deny=NO
注意:如果user_list是白名单,那么必须在该文件里的用户才可以访问ftp服务。
3.限制流量
# vim /etc/vsftpd/vsftpd.conf
local_max_rate=0
0代表不限速local_max_rate=数值 + 字节
local_max_rate=1024K

五、练习


1. 安装vsftpd 
# yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel 
# yum install vsftpd -y
# systemctl start vsftpd
# systemctl enable vsftpd2. 创建账号zs和lisi 
# useradd zs
# useradd lisi
# echo 123 |passwd --stdin zs
# echo 123 |passwd --stdin lisi 
3. zs可以登陆ftp,lisi不可以 
这里在/etc/vsftpd/vsftpd.conf中添加
userlist_deny=NO
配置中添加
allow_writeable_chroot=YES --版本超过FTP2.3.5,会报错,所以添加这段	
将zs添加到白名单 user_list文件中
# echo zs >> user_list
# systemctl restart vsftpd
4. zs可以下载和上传文件 
给zs用户写的权限
# setfacl -R -m u:zs:rwx /data/kefu
# systemctl restart vsftpd
5. lisi可以下载但不能上传
将lisi添加到白名单即可
# echo lisi >> user_list
# systemctl restart vsftpd
6. 给所有用户限速 为1M 
在配置中添加
# vim /etc/vsftpd/vsftpd.conf
# systemctl restart vsftpd
local_max_rate=1024K
7. 不允许从192.168.1.11上进行登陆,其他ip都可以
# vim /etc/hosts.deny
在配置下面添加
vsftpd:192.168.1.11
# systemctl restart vsftpd
8. 设置root可以登陆ftp 
将root从黑名单中删除
# vim /etc/vsftpd/ftpusers 
删除root
# systemctl restart vsftpd
9.禁锢所有用户在/data/kefu目录之下
在配置中添加
local_root=/data/kefu
chroot_local_user=YES
# systemctl restart vsftpd

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

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

相关文章

Python基础语法入门(第二十天)——文件操作

一、基础内容 在Python中,路径可以以不同的表现形式进行表示。以下是一些常用的路径表现形式: 1. 绝对路径:它是完整的路径,从根目录开始直到要操作的文件或文件夹。在Windows系统中,绝对路径以盘符开始,…

【学会动态规划】环形子数组的最大和(20)

目录 动态规划怎么学? 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后: 动态规划怎么学? 学习一个算法没有捷径,更何况是学习动态规划, 跟我…

高层建筑全景vr火灾隐患排查模拟培训软件助力群众防范火灾伤害

随着城市化进程的加快,楼宇建筑的数量也在不断增加。然而,楼宇消防安全问题也日益突出。为了提高楼宇员工和居民的消防安全意识,楼宇VR消防安全教育培训应运而生。VR安全培训公司深圳华锐视点制作的楼宇vr消防安全教育培训,包括消…

谷粒商城第十一天-完善商品分组(主要添上关联属性)

目录 一、总述 二、前端部分 2.1 改良前端获取分组列表接口及其调用 2.2 添加关联的一整套逻辑 三、后端部分 四、总结 一、总述 前端部分和之前的商品品牌添加分类差不多。 也是修改一下前端的分页获取列表的接口,还有就是加上关联的那一套逻辑,…

nginx负载均衡与反向代理与正向代理

负载均衡:通过反向代理来实现 正向代理的配置方法。 正向代理: 工作原理:用户端直接访问不了,需要通过代理服务器来访问web服务器,用户端先访问代理服务器,再访问web服务器。web服务器响应给代理服务器&a…

【C语言】调试技巧

目录 一、什么是bug? 二、调试 1.一般调试的步骤 2.Debug 和 Release 三、调试环境准备 四、调试时要查看的信息 1.查看临时变量的值 2.查看内存信息 3.查看调用堆栈 4.查看反汇编信息 5.查看寄存器 五、练习 六、常见的coding技巧 七、const的作用 八、编程常见…

如何应用项目管理软件进行敏捷开发管理

敏捷开发(Agile Development)是一种软件开发方法论,强调在不断变化的需求和环境下,通过迭代、协作和自适应的方式来开发软件。敏捷方法的目标是提供更快、更灵活、更高质量的软件交付,以满足客户需求并实现项目成功。 …

服务器数据恢复-EqualLogic存储RAID5数据恢复案例

服务器数据恢复环境: 一台DELL EqualLogic存储中有一组由16块SAS硬盘组建的RAID5阵列。存储存放虚拟机文件,采用VMFS文件系统,划分了4个lun。 服务器故障&检测&分析: 存储设备上有两个硬盘指示灯显示黄色,存储…

1022.从根到叶的二进制之和

目录 一、题目 二、代码 一、题目 二、代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nu…

vue项目的实用性总结

1、mockjs 基本使用 ★ 安装:npm i mockjs。 在src/mock/index.js内容如下: import Mock from mockjs //制订拦截规则 Mock.mock(http://www.0313.com,get,你好啊)记得在main.js中引入一下,让其参与整个项目的运行。 只要发出去的是get类型…

家纺行业小程序商城搭建指南

家纺行业作为一个不可或缺的消费领域,近年来备受关注。随着互联网的发展,小程序商城成为家纺行业拓展市场的新利器。搭建一个家纺行业小程序商城并不是一件困难的事情,只需要按照以下几个步骤进行操作,就能轻松上手。 首先&#x…

UI设计师个人工作总结范文

UI设计师个人工作总结范文篇一 感受到了领导们“海纳百川”的胸襟,感受到了作为广告人“不经历风雨,怎能见彩虹”的豪气,也体会到了重庆广告从业人员作为拓荒者的艰难和坚定(就目前国内广告业而言,我认为重庆广告业尚在发展阶段并…

FreeRTOS(独立看门狗监测任务执行与低功耗Tickless模式)

资料来源于硬件家园:资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、独立看门狗介绍 二、看门狗监测多任务执行思路 1、监测目标 2、监测方案 3、应用注意事项 三、看门狗监测多任务编程 1、STM32cubeMX配置 2、代码编写 四、低功耗Tickless模…

基于HTML+CSS+Echarts大屏数据可视化集合共99套

基于HTMLCSSEcharts大屏数据可视化集合共99套 一、介绍二、展示1.大数据展示系统2.物流订单系统3.物流信息系统4.办税渠道监控平台5.车辆综合管控平台 三、其他系统实现四、获取源码 一、介绍 基于HTML/CSS/Echarts的会议展览、业务监控、风险预警、数据分析展示等多种展示需求…

React 全栈体系(一)

第一章 React入门 一、React简介 1. 是什么? 是一个将数据渲染为HTML视图的开源JavaScript库。 2. 谁开发的? 由Facebook开源 3. 为什么要学? 原生JavaScript操作DOM繁琐,效率低(DOM-API 操作 UI) 使…

论文阅读——Adversarial Eigen Attack on Black-Box Models

Adversarial Eigen Attack on Black-Box Models 作者:Linjun Zhou, Linjun Zhou 攻击类别:黑盒(基于梯度信息),白盒模型的预训练模型可获得,但训练数据和微调预训练模型的数据不可得&#xff…

2023年国赛数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米,宽为12米&…

Thymeleaf快速入门及其注意事项

😀前言 本篇博文是关于Thymeleaf的基本介绍,希望你能够喜欢😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的…

Dev-C++

文章目录 介绍使用教程常用快捷键文件部分格式部分行操作跳转部分显示部分运行部分调试部分 调试流程 扩展增加编译选项开启优化显示最多警告信息生成调试信息 编译小 trick开大栈定义宏代码格式化 美化字体主题 介绍 Dev-C 是一套用于开发 C/C 程序的自由的集成开发环境&…

面向云思考安全

Gartner最近的一项研究表明,到 2025 年,85% 的企业会采用云战略,虽然这一数字是面向全球的,但可以看到在中国的环境中,基于云所带来的优势,越来越多的企业也同样开始积极向云转型。 但同时,有报…