当前位置: 首页 > news >正文

系统安装及应用

重点

账号安全控制

系统引导和登陆控制

弱口令检测

端口扫描

前言

随着信息技术的快速发展,系统安全成为我们日常生活和工作中不可或缺的一部分。本章节主要探讨系统安全及应用,涵盖了账号安全控制、系统引导和登录控制、弱口令检测以及端口扫描等多个方面,为我们提供了一系列实用的安全措施和策略。

   首先,介绍了账号安全控制的重要性,包括系统账号清理、密码安全控制、命令历史及自动注销等机制,确保用户账号的正当、安全使用。接着,我们探讨了系统引导和登录控制,包括调整BIOS引导设置、限制更改GRUB引导参数、终端及登录控制,以加强服务器的物理和系统层面的安全。

此外,我们还介绍了弱口令检测和端口扫描技术,包括使用John the Ripper进行弱口令检测以及使用NMAP进行网络扫描,这些工具可以帮助我们及时找出潜在的安全风险,并采取相应的安施。

一;账号安全控制

用户账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机。在 Linux 系统中,提供了多种机制来确保用户账号的正当、安全使用。

1.基本安全措施

1)系统账号清理

在 Linux 系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号。除了超级用户 root 之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允许登录的,因此也称为非登录用户账号。

  常见的非登录用户账号包括 bin、daemon、adm、lp、mail 等。为了确保系统安全,这些用户账号的登录 Shell 通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动,如下所示。

各种非登录用户账号中,还有相当一部分是很少用到的,如games。这些用户账号可以视为冗余账号,直接删除即可。除此之外,还有一些随应用程序安装的用户账号,若卸载程序以后未能自动删除,则需要管理员手动进行清理。

  对于 Linux 服务器中长期不用的用户账号,若无法确定是否应该删除,可以暂时将其锁定。例如,若要锁定、解锁名为 zhangsan 的用户账号,可以执行以下操作(passwd、usermod命令都可用来锁定、解锁账号)。

创建用户 zhangsan

如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方法。使用chattr 命令,分别结合“+i”“-i”选项来锁定、解锁文件,使用1sattr 命令可以查看文件锁定情况。

在账号文件被锁定的情况下,其内容将不允许变更,因此无法添加、删除账号,也不能更改用户的密码、登录 Shell、宿主目录等属性信息。

(2)密码安全控制

在不安全的网络环境中,为了降低密码被猜出或被暴力破解的风险,用户应养成定期更改密码的习惯,避免长期使用同一个密码。管理员可以在服务器端限制用户密码的最大有效天数,对于密码已过期的用户,登录时将被要求重新设置密码,否则将拒绝登录。

执行以下操作可将密码的有效期设为 30 天(chage 命令用于设置密码时限)。

 在某些特殊情况下,如要求批量创建的用户初次登录时必须自设密码,根据安全规划统一要求所有用户更新密码等,可以由管理员执行强制策略,以便用户在下次登录时必须更改密码。例如,执行以下操作可强制要求用户 zhangsan 下次登录时重设密码。

(3)命令历史,自动注销

Shell 环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。

Bash 终端环境中,历史命令的记录条数由变量 HISTSIZE 控制,默认为1000 条。通过修改

/etc/profile 文件中的 HISTSIZE 变量值,可以影响系统中的所有用户。例如,可以设置最多只记录200 条历史命令。

除此之外,还可以修改用户宿主目录中的~/.bash_logout 文件,添加清空历史命令的操作语句。这样,当用户退出已登录 Bash 环境以后,所记录的历史命令将自动清空。

Bash 终端环境中,还可以设置一个闲置超时时间,当超过指定的时间没有任何输入时即自动注销终端,这样可以有效避免当管理员不在时其他人员对服务器的误操作风险。闲置超时由变量 TMOUT 来控制,默认单位为秒(s)。

需要注意的是,当正在执行程序代码编译、修改系统配置等耗时较长的操作时,应避免设置 TMOUT 变量。必要时可以执行“unset TMOUT”命令取消 TMOUT 变量设置。

2.用户切换与提权

大多数 Linux 服务器并不建议用户直接以 root 用户进行登录。一方面可以大大减少因误操作而导致的破坏,另一方面也降低了特权密码在不安全的网络中被泄露的风险。鉴于这些原因,需要为普通用户提供一种身份切换或权限提升机制,以便在必要的时候执行管理任务。

Linux 系统为我们提供了 su、sudo 两种命令,其中su 命令主要用来切换用户,而 sudo命令用来提升执行权限,下面分别进行介绍。

(1)su命令的用法

使用 su 命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。当然,切换时需要对目标用户的密码进行验证(从root 用户切换为其他用户时除外)。例如,当前登录的用户为jerry,若要切换为 root 用户,可以执行以下操作。

上述命令操作中,选项“-”等同于“ -- login”或“-1”,表示切换用户后进入目标用户的登录Shell环境,若缺少此选项则仅切换身份、不切换用户环境。对于切换为root 用户的情况,“root”可以省略。默认情况下,任何用户都允许使用su 命令,从而有机会反复尝试其他用户(如root)的登录密码,这样带来了安全风险。为了加强su 命令的使用控制,可以借助于pam_wheel认证模块,只允许极个别用户使用 su 命令进行切换。实现过程如下:将授权使用 su命令的用户添加到 wheel 组,修改/etc/pam.d/su 认证配置以启用 pam_wheel 认证。

启用 pam_wheel 认证以后,未加入到wheel 组内的其他用户将无法使用 su 命令,尝试进行切换时将提示“拒绝权限”,从而将切换用户的权限控制在最小范围内。

(2)PAM认证

PAM(Pluggable Authentication Modules),是Linux 系统可插拔认证模块,是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux 服务器普遍使用的认证方式。PAM 提供了对所有服务进行认证的中央机制,适用于login,远程登录(telnet,rlogin,fsh,ftp),su 等应用程序中。系统管理员通过 PAM 配置文件来制定不同应用程序的不同认证策略。

PAM 认证原理如下所示:

> PAM 认证一般遵循的顺序:Service(服务)→PAM(配置文件)→pam _*. so;

> PAM 认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最

后调用认证文件(位于/lib/security 下)进行安全认证;

>用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM 模块进行认证。不

同的应用程序所对应的 PAM 模块也是不同的

如果想查看某个程序是否支持 PAM 认证,可以用1s 命令进行查看,例如执行以下命令可以查看 su是否支持 PAM 模块认证。

su 的 PAM 配置文件的具体内容如下所示。

> 每一行都是一个独立的认证过程;

> 每一行可以区分为三个字段:

■ 认证类型

■ 控制类型

■ PAM 模块及其参数

认证管理(authentication management):接受用户名和密码,进而对该用户的密码进行认证;

帐户管理(account management):检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登

录是否有时间段的限制等;

密码管理(password management):主要是用来修改用户的密码;
会话管理(session management):主要是提供对会话的管理和记账。

控制类型也可以称做 Control Flags,用于 PAM验证类型的返回结果。

■ required 验证失败时仍然继续,但返回 Fail

■ requisite 验证失败则立即结束整个验证过程,返回 Fail

■ sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续

■ optional 不用于验证,只是显示信息(通常用于 session 类型)

验证流程如下图所示

3.sudo命令----提升执行权限

通过 su 命令可以非常方便地切换为另一个用户,但前提条件是必须知道目标用户的登录密码。例如,若要从 jerry 用户切换为 root 用户,必须知道 root 用户的密码。对于生产环境中的 Linux 服务器,每多一个人知道特权密码,其安全风险也就增加一分。

有没有一种折中的办法,既可以让普通用户拥有一部分管理权限,又不需要将root 用户的密码告诉他呢?答案是肯定的,使用sudo 命令就可以提升执行权限。不过,需要由管理员预先进行授权,指定允许哪些用户以超级用户(或其他普通用户)的身份来执行哪些命令。

(1)在配置文件/etc/sudoers中添加授权

sudo 机制的配置文件为/etc/sudoers,文件的默认权限为440,需使用专门的 visudo工具进行编辑。虽然也可以用vi 进行编辑,但保存时必须执行“:w!”命令来强制操作,否则系统将提示为只读文件而拒绝保存。

配置文件/etc/sudoers 中,授权记录的基本配置格式如下所示。

user MACHINE=COMMANDS

授权配置主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行哪些命令。各部分的具体含义如下。

用户直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)。
主机

使用此配置文件的主机名称。此部分主要是方便在多个主机间共用同一份

sudoers 文件,一般设为 localhost 或者实际的主机名即可。

命令

允许授权的用户通过 sudo 方式执行的特权命令,需填写命令程序的完整

路径,多个命令之间以逗号“,”进行分隔。

典型的 sudo 配置记录中,每行对应一个用户或组的sudo 授权配置。例如,若要授权用户 jerry能够执行 ifconfig 命令来修改 IP地址,而 wheel 组的用户无需验证密码即可执行任何命令,可以执行以下操作。

当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、主机、命令部分都可以定义为别名(必须为大写),分别通过关键字 User_Alias、Host_Alias、Cmnd_Alias 来进行设置。例如,以下操作通过别名方式来添加授权记录,允许用户 jerry、tom、tsengyia 在主机 smtp、pop 中执行 rpm、yum 命令。

sudo 配置记录的命令部分允许使用通配符“*”、取反符号“!”,当需要授权某个目录下的所有命令或取消其中个别命令时特别有用。例如,若要授权用户 syrianer 可以执行/sbin/目录下除 ifconfig、route 以外的其他所有命令程序,可以执行以下操作。

默认情况下,通过 sudo方式执行的操作并不记录。若要启用sudo 日志记录以备管理员查看,应在/etc/sudoers 文件中增加“Defaults logfile”设置。

2)通过sudo执行特权命令

对于已获得授权的用户,通过sudo 方式执行特权命令时,只需要将正常的命令行作为sudo 命令的参数即可。由于特权命令程序通常位于/sbin、/usr/sbin等目录下,普通用户执行时应使用绝对路径。以下操作验证了使用 sudo 方式执行命令的过程。

在当前会话过程中,第一次通过 sudo 执行命令时,必须以用户自己的密码(不是root用户或其他用户的密码)进行验证。此后再次通过 sudo 执行命令时,只要与前一次 sudo操作的间隔时间不超过5min(分),则不再重复验证。

若要查看用户自己获得哪些sudo 授权,可以执行“sudo-1”命令。未授权的用户将会得到“may notrun sudo”的提示,已授权的用户则可以看到自己的 sudo 配置。

用户 syrianer 可以在该主机上运行以下命令:

(root) /sbin/*, (root) !/sbin/ifconfig, (root) !/sbin/route

 如果已经启用 sudo 日志,则可以从/var/log/sudo 文件中看到用户的 sudo 操作记录。

二:系统引导和登录控制

在互联网环境中,大部分服务器是通过远程登录的方式来进行管理的,而本地引导和终端登录过程往往容易被忽视,从而留下安全隐患。特别是当服务器所在的机房环境缺乏严格、安全的管控制度时,如何防止其他用户的非授权介入就成为必须重视的问题。

1。开关机安全控制

对于服务器主机,其物理环境的安全防护是非常重要的,不仅要保持机箱完好、机柜锁闭,还要严格控制机房的人员进出、硬件设备的现场接触等过程。在开关机安全控制方面,除了要做好物理安全防护以外,还要做好系统本身的一些安全措施。

(1)调整BIOS引导设置

将第一优先引导设备(First Boot Device)设为当前系统所在磁盘。
禁止从其他设备(如光盘、U盘、网络等)引导系统,对应的项设为“Disabled”
将 BIOS 的安全级别改为“setup”,并设置好管理密码,以防止未授权的修改。

(2)限制更改GRUB引导参数

在之前的课程中介绍过通过修改 GRUB 引导参数,对一些系统问题进行修复。从系统安全的角度来看,如果任何人都能够修改 GRUB 引导参数,对服务器本身显然是一个极大的威胁。为了加强对引导过程的安全控制,可以为GRUB 菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

   为 GRUB 菜单设置的密码建议采用“grub2-mkpasswd-pbkdf2”命令生成,表现为经过PBKDF2 算法加密的字符串,安全性更好。生成密码后在/etc/grub.d/00_header 配置文件中,添加对应的用户、密码等配置,具体添加内容如下所示。

2.终端及登录控制

 1.禁止root用户登录

在 Linux 系统中,login 程序会读取/etc/securetty 文件,以决定允许 root 用户从哪些终端(安全终端)登录系统。若要禁止 root 用户从指定的终端登录,只需从该文件中删除或者注释掉对应的行即可。例如,若要禁止root 用户从 tty5、tty6登录,可以修改/etc/securetty文件,将tty5、tty6行注释掉。

(2)禁止普通用户登录

当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统。这时候,只需要简单地建立/etc/nologin 文件即可。login 程序会检查/etc/nologin 文件是否存在,如果存在,则拒绝普用户登录系统(root 用户不受限制)。

此方法实际上是利用了shutdown 延迟关机的限制机制,只建议在服务器维护期间临时使用。当手动删除/etc/nologin 文件或者重新启动主机以后,即可恢复正常。

三:弱口令检测,端口扫描

1.弱口令检测------John the ripper

在 Internet 环境中,过于简单的口令是服务器面临的最大风险。尽管大家都知道设置一个更长、更复杂的口令会更加安全,但总是会有一些用户因贪图方便而采用简单、易记的口令字串。对于任何一个承担着安全责任的管理员,及时找出这些弱口令账号是非常必要的,这样便于采取进一步的安全措施(如提醒用户重设更安全的口令)。

John the Ripper 是一款开源的密码破解工具,能够在已知密文的情况下快速分析出明文的密码字串,支持 DES、MD5 等多种加密算法,而且允许使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。通过使用 John the Ripper,可以检测 Linux/UNIX 系统用户账号的密码强度。

(1)下载并安装 John the rtpper

John the Ripper 的官方网站是 http://www.openwall.com/john/,通过该网站可以获取稳定版源码包,如 john-1.8.0.tar.gz。

以源码包 john-1.8.0.tar.gz 为例,解压后可看到三个子目录 -- doc、run、src,分别表示手册文档、运行程序、源码文件,除此之外还有一个链接的说明文件 README。其中,doc 目录下包括 README、INSTALL、EXAMPLES 等多个文档,提供了较全面的使用指导。

切换到 src 子目录并执行“make clean linux-x86-64”命令,即可执行编译过程。若单独执行 make命令,将列出可用的编译操作、支持的系统类型。编译完成以后,run 子目录下会生成一个名为 john的可执行程序

(2)检测弱口令账号

在安装有 John the Ripper 的服务器中,可以直接对/etc/shadow 文件进行检测。对于其他 Linux服务器,可以对 shadow 文件进行复制,并传递给john 程序进行检测。只需执行 run 目录下的 john 程序,将待检测的 shadow 文件作为命令行参数,就可以开始弱口令分析了。

在执行过程中,分析出来的弱口令账号将即时输出,第一列为密码字串,第二列的括号内为相应的用户名(如用户 kadmin 的密码为“123456”)。默认情况下,john 将针对常见的弱口令设置特点,尝试破解已识别的所有密文字串,如果检测的时间太长,可以按Ctrl+C组合键强行终止。破解出的密码信息自动保存到 john.pot 文件中,可以结合“ -- show”选项进行查看。

./john --show /root/shadow.txt

(3)使用密码字典文件

对于密码的暴力破解,字典文件的选择很关键。只要字典文件足够完整,密码破解只是时间上的问题。因此,“什么样的密码才足够强壮”取决于用户的承受能力,有人认为超过72小时仍无法破解的密码才算安全,也可能有人认为至少暴力分析一个月仍无法破解的密码才足够安全。

  John the Ripper 默认提供的字典文件为 password.1st,其列出了 3000 多个常见的弱口令。如  果有必要,用户可以在字典文件中添加更多的密码组合,也可以直接使用更加完整的其他字典文件。执行john 程序时,可以结合“ -- wordlist=”选项来指定字典文件的位置,以便对指定的密码文件进行暴力分析。

2.网络扫描----NMAP

NMAP 是一个强大的端口扫描类安全评测工具,官方站点是http://nmap.org/。NMAP被设计为检测众多主机数量的巨大网络,支持ping 扫描、多端口检测、OS 识别等多种技术。使用 NMAP 定期扫描内部网络,可以找出网络中不可控的应用服务,及时关闭不安全的服务,减小安全风险。

(1)安装 NMAP 软件包

在Linux系统中,既可以使用光盘自带的 nmap-6.40-7.e17.x86_64.rpm 安装包,也可以使用从NMAP 官方网站下载的最新版源码包,这里以 YUM 方式安装的 nmap 软件包为例。

(2)扫描语法及类型

NMAP 的扫描程序位于/usr/bin/nmap 目录下,使用时基本命令格式如下所示。

nmap[扫描类型][选项]<扫描目标 .. >

其中,扫描目标可以是主机名、IP地址或网络地址等,多个目标以空格分隔;常用的选项有“-p”“-n”,分别用来指定扫描的端口、禁用反向 DNS解析(以加快扫描速度);扫描类型决定着检测的方式,也直接影响扫描的结果。

比较常用的几种扫描类型如下。

-sS,TCP SYN 半开扫描

只向目标发出 SYN 数据包,如果收到 SYN/ACK响应包就认

为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。

-sT,TCP  连接扫描

这是完整的TCP 扫描方式,用来建立一个TCP连接,如果成功则认为目

标端口正在监听服务,否则认为目标端口并未开放。

-sF,TCP FIN 扫描

开放的端口会忽略这种数据包,关闭的端口会回应 RST 数据包。许多防

火墙只对 SYN 数据包进行简单过滤,而忽略了其他形式的 TCP攻击包。这种类型的扫描可间接

检测防火墙的健壮性。

-sU,UDP  扫描探测目标主机提供哪些UDP服务,UDP 扫描的速度会比较慢。
-sP,ICMP 扫描类似于ping 检测,快速判断目标主机是否存活,不做其他扫描
-P0  跳过ping2检测

这种方式认为所有的目标主机是存活的,当对方不响应 ICMP请求时,

使用这种方式可以避免因无法 ping 通而放弃扫描

(3)扫描示例一

快速检测192.168.10.0/24 网段中有哪些存活主机(能ping通)

(4)扫描示例二

检测IP地址位于192.168.10.100-200的主机是否文件共享服务(5)扫描示例三

检测192.168.10.0/24 网段中有哪些知己提供ftp服务

相关文章:

系统安装及应用

重点 账号安全控制 系统引导和登陆控制 弱口令检测 端口扫描 前言 随着信息技术的快速发展,系统安全成为我们日常生活和工作中不可或缺的一部分。本章节主要探讨系统安全及应用,涵盖了账号安全控制、系统引导和登录控制、弱口令检测以及端口扫描等多个方面,为我们提供了一…...

发布事件和Insert数据库先后顺序

代码解释 csharp await PublishCreatedAsync(entity).ConfigureAwait(false); await Repository.InsertAsync(entity).ConfigureAwait(false);PublishCreatedAsync(entity)&#xff1a;这是一个异步方法&#xff0c;其功能是发布与实体创建相关的事件。此方法或许会通知其他组…...

【英语语法】词法---冠词

目录 冠词一、不定冠词&#xff1a;a / an1. 基本用法2. 主要使用场景3. 特殊情况 二、定冠词&#xff1a;the1. 基本用法2. 主要使用场景3. 特殊情况 三、零冠词1. 基本规则2. 特殊情况 四、冠词对比五、常见错误总结 冠词 冠词是英语中用于限定名词的一类虚词&#xff0c;分…...

android的 framework 有哪些知识点和应用场景

Android Framework 知识点 1. 四大组件 Activity&#xff08;活动&#xff09; 是 Android 应用中最基本的组件&#xff0c;用于实现用户界面。一个 Activity 通常对应一个屏幕的内容。有自己的生命周期&#xff0c;包括 onCreate、onStart、onResume、onPause、onStop、onDe…...

Prompt 攻击与防范:大语言模型安全的新挑战

随着大语言模型&#xff08;LLM&#xff09;在企业服务、智能助手、搜索增强等领域的广泛应用&#xff0c;围绕其"Prompt"机制的安全问题也逐渐引起关注。其中最具代表性的&#xff0c;就是所谓的 Prompt Injection&#xff08;提示词注入&#xff09;攻击。 本文将…...

Ubuntu20.04安装Pangolin遇到的几种报错的解决方案

1.添加两个编译选项 /usr/include/OpenEXR/half.h:121:13: note: because ‘half’ has user-provided ‘half& half::operator(half)’121 | half & operator (half h);| ^~~~~~~~ 解决方案&#xff1a; 在CMakeList中添加以下两句&#xff1a; …...

软考 中级软件设计师 考点知识点笔记总结 day14 关系代数 数据库完整性约束

文章目录 6.5 关系代数6.5.1 关系代数—七种基本运算 6.6 数据库完整性约束6.7 关系型数据库SQL简介 6.5 关系代数 候选码&#xff08;键&#xff09;&#xff1a;若关系中的某一属性或属性组的值能唯一标识一个元组&#xff0c;则称该属性或属性组为候选码。 主码&#xff0…...

前端vue监听 -watch

前端vue监听 -watch 前言基本用法监听简单数据属性监听对象属性 高级用法深度监听对象即时触发监听监听计算属性 注意事项 前言 在 Vue.js 里&#xff0c;watch 选项可用于响应式地监听数据的变化&#xff0c;当被监听的数据发生改变时&#xff0c;就会触发相应的回调函数来执…...

Linux之信号

目录 一、预备知识 二、信号的产生 一、键盘产生信号 二、系统调用 三、调用系统命令向进程发信号 kill 四、硬件异常 五、软件条件 三、信号的保存 四、信号的处理 一、预备知识 1.信号&#xff01;信号量。两者没有任何关系 2.什么是信号&#xff1f; 定义一&…...

微软Edge浏览器字体设置

前言 时间&#xff1a;2025年4月 自2025年4月起&#xff0c;微软Edge浏览器的默认字体被微软从微软雅黑替换成了Noto Sans&#xff0c;如下图。Noto Sans字体与微软雅黑风格差不多&#xff0c;但在4K以下分辨率的显示器上较微软雅黑更模糊&#xff0c;因此低分辨率的显示器建议…...

Java中 关于编译(Compilation)、类加载(Class Loading) 和 运行(Execution)的详细区别解析

以下是Java中 编译&#xff08;Compilation&#xff09;、类加载&#xff08;Class Loading&#xff09; 和 运行&#xff08;Execution&#xff09; 的详细区别解析&#xff1a; 1. 编译&#xff08;Compilation&#xff09; 定义 将Java源代码&#xff08;.java文件&#x…...

[python] set

1.添加元素 在 Python 中&#xff0c;向 set 添加一个元素可以使用 add() 方法。如果添加的元素已经存在于 set 中&#xff0c;add() 不会重复添加&#xff08;因为 set 具有自动去重的特性&#xff09;。 方法 1&#xff1a;add(element)&#xff08;添加单个元素&#xff0…...

转化率提升47%?亚马逊用户行为预测模型深度解读

在亚马逊运营的战场上&#xff0c;谁能更精准地读懂用户行为&#xff0c;谁就更可能赢得转化率的胜利。近年来&#xff0c;越来越多卖家借助“用户行为预测模型”来优化Listing布局、广告投放策略、甚至库存管理&#xff0c;而这些数据驱动的决策也确确实实地带来了质的提升。 …...

C++计算 n! 中末尾零的数量

* 详细说明* 给定一个整数作为输入。目标是找出该数的阶乘结果中末尾零的数量。 一个数 N 的阶乘是范围 [1, N] 内所有数的乘积。* * 我们知道&#xff0c;只有当一个数是 10 的倍数或者有因数对 (2, 5) 时&#xff0c;才会产生末尾零。 在任何大于 5 的数的阶乘中&#xff0c;…...

大模型中超参数TopK是什么

大模型中的超参数Top-K是文本生成过程中的关键控制参数,主要用于平衡生成结果的确定性与多样性。以下从定义、工作原理、应用场景及与其他参数的协同关系进行详细阐述: 一、Top-K的定义与核心机制 基本定义 Top-K(Top-K Sampling)是一种基于概率采样的文本生成策略。其核心…...

NetApp ONTAP 9 故障磁盘更换操作指南

以前写过一篇7-mode的磁盘更换文档&#xff0c;好几个朋友反馈说命令都没有&#xff0c;都不对。主要原因是客户现在的环境都是ontap 9的cluster-mode环境了&#xff0c;所以很多命令都不一样了。为此&#xff0c;这里专门就ontap 9的cluster-mode写一篇磁盘更换操作指南&#…...

leetcode day 35 01背包问题 416+1049

0-1背包问题 &#xff08;1&#xff09;第一种情况&#xff1a;二维dp[i][j]数组 dp[i][j]表示[0,i]的物品放入容量为j背包的最大价值 不放物品i,dp[i][j]dp[i-1][j] 放物品i,dp[i][j]dp[i-1][j-w[i]]v[i] 递推公式为&#xff1a; dp[i][j]dp[i-1][j];//不放 if(w[i]<j)dp…...

MySQL的基本操作

显示所有数据库&#xff1a; SHOW DATABASES; 系统默认数据库&#xff1a; 数据库名用途information_schema存储 MySQL 服务器元数据&#xff08;如数据库、表、列信息&#xff09;&#xff0c;只读mysql存储用户权限、密码、日志等核心数据&#xff08;不要随意修改&#xff…...

CSS伪类、clip-path实现三角形、箭头绘制

<template><div :class"$options.name"><div class"triangle-container1"><!-- 伪类三角形&#xff1a;向右 --><div class"triangle-RM"></div><!-- 伪类三角形&#xff1a;向下 --><div class&q…...

基于大模型的腹股沟疝全流程预测与诊疗方案研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究方法与创新点 二、大模型在腹股沟疝术前评估中的应用 2.1 腹股沟疝概述与诊断方法 2.2 术前评估指标与数据收集 2.3 大模型预测原理与实现 2.4 预测结果与传统评估对比 三、基于大模型预测的手术方案制定 3.1 手术方式选择…...

零基础上手Python数据分析 (20):Seaborn 统计数据可视化 - 轻松绘制精美统计图表!

写在前面 —— 告别 Matplotlib 繁琐定制,拥抱 Seaborn 便捷之美,让统计可视化更高效 在前面两篇博客中,我们学习了 Python 数据可视化的基石 Matplotlib,掌握了绘制基础图表和进行高级定制的技巧。 Matplotlib 功能强大且灵活,能够满足几乎所有的二维绘图需求。 然而,…...

elasticsearch7.15节点磁盘空间满了迁移数据到新磁盘

一.数据安全迁移 在 Elasticsearch 中设置某个节点临时不可用&#xff08;例如进行维护或升级&#xff09;&#xff0c;可以通过以下步骤安全地操作&#xff0c;避免数据丢失或集群状态异常 1: 排除节点分片分配&#xff0c;触发分片迁移到其他节点 PUT /_cluster/settings {&…...

MCP案例—客户端和服务端

MCP简介 Model Context Protocol (模型上下文协议)&#xff0c;简称MCP&#xff0c;MCP是一种协议&#xff0c;用于LLM与外部拓展资源交互的协议。 想了解具体细节可参考作者本篇文章MCP理论指南 准备 本篇文章将带你通过python创建MCP客户端及服务端&#xff0c;并连接到本…...

排序模型(Learning to Rank)

排序模型&#xff08;Learning to Rank&#xff09; 要解决的问题 排序模型旨在解决信息检索中的排序优化问题。例如&#xff1a; 搜索引擎中对候选网页的排序推荐系统中物品的展示顺序广告系统中广告位的分配 核心挑战&#xff1a;根据上下文特征&#xff0c;将最相关/最有…...

L1-1、Prompt 是什么?为什么它能“控制 AI”?

*Prompt 入门 L1-1 想象一下&#xff0c;你只需输入一句话&#xff0c;AI 就能自动为你写一篇文案、生成一份报告、甚至规划你的创业计划。这种“对话即编程”的背后魔法&#xff0c;就是 Prompt 的力量。 &#x1f50d; 一、Prompt 的定义与由来 Prompt&#xff08;提示词&am…...

RolmOCR重磅开源:基于Qwen2.5-VL,速度提升40%,手写/倾斜文档识别准确率超92%

向大家介绍一款全新的开源OCR模型——RolmOCR&#xff01;这款由Reducto AI团队基于阿里巴巴强大的Qwen2.5-VL-7B-Instruct视觉语言模型微调而来的利器&#xff0c;不仅在速度和效率上实现了显著提升&#xff08;据称处理速度相比其前身olmOCR提升了约40%&#xff09;&#xff…...

系统架构设计(二):基于架构的软件设计方法ABSD

“基于架构的软件设计方法”&#xff08;Architecture-Based Software Design, ABSD&#xff09;是一种通过从软件架构层面出发指导详细设计的系统化方法。它旨在桥接架构设计与详细设计之间的鸿沟&#xff0c;确保系统的高层结构能够有效指导后续开发。 ABSD 的核心思想 ABS…...

[langchain教程]langchain03——用langchain构建RAG应用

RAG RAG过程 离线过程&#xff1a; 加载文档将文档按一定条件切割成片段将切割的文本片段转为向量&#xff0c;存入检索引擎&#xff08;向量库&#xff09; 在线过程&#xff1a; 用户输入Query&#xff0c;将Query转为向量从向量库检索&#xff0c;获得相似度TopN信息将…...

Android 图片加载框架 Glide 详细介绍

一、简单使用 1、加载图片 导入依赖 implementation("com.github.bumptech.glide:glide:4.16.0")编写代码 private static final String url = "http://cn.bing.com/az/hprichbg/rb/Dongdaemun_ZH-CN10736487148_1920x1080.jpg";btnPic.setOnClickList…...

vue2解析html中的公式,使用vue-katex

文本是markdown格式&#xff0c;需要解析markdown <p v-html"md.render(text)"></p>import MarkdownIt from markdown-it ...const mdRender MarkdownIt(); ...data中md: new MarkdownIt(),现在文本中会出现数学公式&#xff0c;解析使用vue-katex 1.…...

使用Unity Cache Server提高效率

2021年1月20日19:04:28 1 简介 Unity Cache Server,翻译过来就是Unity缓存服务器 1.1 缓存服务器の官方介绍 Unity 有一个完全自动的资源管线。每当修改 .psd 或 .fbx 文件等源资源时,Unity 都会检测到更改并自动将其重新导入。随后,Unity 以内部格式存储从文件导入的数…...

【C++】模板2.0

最近学习了一些模板的知识&#xff0c;速写本博客作为学习笔记&#xff0c;若有兴趣&#xff0c;欢迎垂阅读&#xff01; 1.非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名…...

深入解析 Linux 文件系统中的软硬链接:从原理到实践

引言 在 Linux 系统中&#xff0c;软链接&#xff08;Symbolic Link&#xff09; 和 硬链接&#xff08;Hard Link&#xff09; 是文件管理的两大核心机制。它们如同文件系统的“快捷方式”与“分身术”&#xff0c;既能节省存储空间&#xff0c;又能实现灵活的文件管理。但两…...

JumpServer多用户VNC桌面配置指南:实现多端口远程访问

在当今的云计算和远程工作环境中,高效且安全地管理多用户远程桌面访问变得越来越重要。本文将详细介绍如何在JumpServer中配置多个VNC桌面,以满足不同用户的远程访问需求。我们将以创建第二个桌面为例,为用户user2配置VNC访问。 一、背景说明 JumpServer作为一款优秀的开源…...

【数据结构入门训练DAY-19】总结数据结构中的栈

文章目录 前言一、栈的思想二、栈的解题思路结语 前言 本次训练内容&#xff1a; 栈的复习。总结栈的基本操作 一、栈的思想 在数据结构中&#xff0c;栈是一种很常见的算法。栈——就像你往桶里放东西似的&#xff0c;要取出桶内的物体就得先把桶顶的物品取出来&#xff…...

MyBatis-Plus 防止 SQL 注入最佳实践指南

&#x1f6ab; MyBatis-Plus 防止 SQL 注入最佳实践指南 作者&#xff1a;William Dawson 标签&#xff1a;Java、MyBatis-Plus、安全、SQL 注入、防护 &#x1f4a5; 什么是 SQL 注入&#xff1f; SQL 注入是一种常见的安全漏洞&#xff0c;攻击者通过恶意构造 SQL 输入参数&…...

AI之pdf解析:Tesseract、PaddleOCR、RapidPaddle(可能为 RapidOCR)和 plumberpdf 的对比分析及使用建议

目录标题 Tesseract、PaddleOCR、RapidPaddle&#xff08;可能为 RapidOCR&#xff09;和 plumberpdf 的对比分析1. Tesseract类型: 开源 OCR 引擎特点:缺点:适用场景: 2. PaddleOCR (推荐)类型:特点:缺点:适用场景: 复杂版式文档、多语言混合文本、需要高精度识别的场景&#…...

经典文献阅读之--Kinematic-ICP(动态优化激光雷达与轮式里程计融合)

0. 简介 传统的激光雷达里程计系统通过点云配准来计算移动机器人的自运动&#xff08;ego-motion&#xff09;&#xff0c;但它们通常没有考虑机器人的运动学特性&#xff0c;这可能导致不准确的运动估计&#xff0c;特别是在机器人不可能发生某些运动&#xff08;如沿z轴的小…...

【显卡占用】kill程序后,显卡仍被占用

如果 kill 程序执行了&#xff0c;但显卡仍然显示被占用&#xff0c;咋个办&#xff1f; 如图所示&#xff0c;GPU-Util占用为0%&#xff0c;但显示占用48G&#xff0c;且无法再上程序&#xff1a; 执行命令&#xff1a; fuser -v /dev/nvidia* kill pid若上述方法无法解决&am…...

在 macOS 上合并 IntelliJ IDEA 的项目窗口

在使用 IntelliJ IDEA 开发时&#xff0c;可能会打开多个项目窗口&#xff0c;这可能会导致界面变得混乱。为了提高工作效率&#xff0c;可以通过合并项目窗口来简化界面。本文将介绍如何在 macOS 上合并 IntelliJ IDEA 的项目窗口。 操作步骤 打开 IntelliJ IDEA: 启动你的 I…...

IO流--字节流详解

IO流 用于读写数据的&#xff08;可以读写文件&#xff0c;或网络中的数据&#xff09; 概述&#xff1a; I指 Input&#xff0c;称为输入流&#xff1a;负责从磁盘或网络上将数据读到内存中去 O指Output&#xff0c;称为输出流&#xff0c;负责写数据出去到网络或磁盘上 因…...

6N60-ASEMI机器人功率器件专用6N60

编辑&#xff1a;ll 6N60-ASEMI机器人功率器件专用6N60 型号&#xff1a;6N60 品牌&#xff1a;ASEMI 封装&#xff1a;TO-220F 批号&#xff1a;最新 最大漏源电流&#xff1a;6A 漏源击穿电压&#xff1a;600V RDS&#xff08;ON&#xff09;Max&#xff1a;1.20Ω …...

实现侧边栏点击标题列表,和中间列表区域联动效果

左侧边栏标题列表实现&#xff1a; -------------------html-----------------------<divclass"uav":class"{ hidden: !isVisible, visible: isVisible }"><ul id"toc"><liv-for"(item, index) in HotList":key"…...

基于MuJoCo物理引擎的机器人学习仿真框架robosuite

Robosuite 基于 MuJoCo 物理引擎&#xff0c;能支持多种机器人模型&#xff0c;提供丰富多样的任务场景&#xff0c;像基础的抓取、推物&#xff0c;精细的开门、拧瓶盖等操作。它可灵活配置多种传感器&#xff0c;提供本体、视觉、力 / 触觉等感知数据。因其对强化学习友好&am…...

kafka监控kafka manager(CMAK)部署配置

一、准备工作 1.1、服务器信息梳理 角色IP操作系统安装服务监控机10.45.19.20Linux CentOS 7.9CMAK3.0.0.5、ZooKeeper3.9.0、JDK11、JDK1.8被监控机 Kafka broker.id 050.50.50.101Linux CentOS 7.9Kafka、ZooKeeper&#xff08;任意版本&#xff09;被监控机 Kafka broker.…...

线程池的介绍

目录 一、什么是线程池 二、线程池的详细内容 三、线程池的简化 一、什么是线程池 提到线程池&#xff0c;我们可能想到 常量池&#xff0c;可以先来说说常量池&#xff1a; 像是字符串常量&#xff0c;在Java程序最初构建的时候&#xff0c;就已经准备好了&#xff0c;等程…...

day33和day34图像处理OpenCV

文章目录 一、图像预处理12 图像梯度处理12.3 Sobel算子12.4 Laplacian算子1.原理&#xff1a;2.语法&#xff1a; 13 图像边缘检测思路13.1 高斯滤波去噪点13.2 计算图像的梯度与方向13.3 非极大值抑制13.4 双阈值筛选13.5 Canny方法和使用 14 绘制图像轮廓14.1 什么是轮廓14.…...

电脑硬盘常见的几种接口类型

一、传统接口&#xff08;机械硬盘为主&#xff09; 1. SATA 接口&#xff08;Serial ATA&#xff09; 特点&#xff1a; 最主流的机械硬盘&#xff08;HDD&#xff09;接口&#xff0c;广泛用于台式机和笔记本电脑。传输速度较慢&#xff0c;理论最大带宽为 6 Gbps&#xff…...

Windows网络及服务:制作系统盘

今天我要介绍的是一个比较有意思且好玩的一个小玩意儿&#xff1a;关于系统盘的制作&#xff1b; 注明&#xff1a;对于系统盘的制作&#xff0c;以及接下来的课程&#xff0c;基本是作为动手课业来进行的&#xff0c;这也是作为程序员的必要进行的一项活动。 对于系统盘&…...

Docker Compose 使用实例

文章目录 一、Docker Compose 简介二、安装 Docker Compose三、基础配置文件示例&#xff08;docker-compose.yml&#xff09;四、关键配置解析五、常用命令六、完整项目示例&#xff08;Node.js MySQL Nginx&#xff09;七、高级功能八、最佳实践九、调试技巧 一、Docker Co…...