【pmsm控制源码】【超级农场复利系统源码】【epg服务器源码】源码 sshd

时间:2024-11-23 11:23:06 编辑:在线php源码 来源:屠龙外围源码

1.scoop install dark安装失败?
2.一文分析Linux内核OOM机制(值得收藏)
3.知名压缩软件xz被发现有后门,源码影响有多大?如何应对?
4.linux系统管理命令shutdown源码linux系统管理命令
5.如何平滑升级openssh,不影响root远程登录?

源码 sshd

scoop install dark安装失败?

       1 概述

       作为一名使用 win 的开发者,搭建开发环境往往是源码一件比较痛苦的事,需要从网上下载各种软件,源码在电脑上配置不同软件运行环境,源码对软件进行各种设置,源码不仅耗时,源码pmsm控制源码而且容易出现各种问题。源码搭建的源码环境还会存在下面一些问题:

       安装大量程序造成路径污染。安装和卸载比较麻烦。源码开发环境不能迁移,源码重装系统或者换电脑需要重新搭建开发环境。源码软件版本不好控制。源码为了解决上面这些问题,源码我们可以使用 WSL+Docker+Scoop 搭建开发环境,源码取代通过图形界面安装软件和 VMware 安装 Linux 环境的源码传统方式。

       WSL 是适用于 Linux 的 Windows 子系统, 可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。

       Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上。

       Scoop 是 Windows 的命令行安装程序,可以让我们从命令行以最小的安装量安装程序, 它消除了安装界面和安装程序造成的路径污染,它安装和卸载软件只需一行命令就可以完成,它还可以随意切换软件的超级农场复利系统源码版本。

       一个完整的开发环境组成:首先使用 WSL 搭建一个 Linux 环境,然后在 Linux 环境里安装 Docker 应用,使用 Docker 来安装一些常用软件,比如数据库、web 环境等,Scoop 则是在本机上安装一些开发用到的软件,比如 jdk、maven、idea 等。WSL 和 Scoop 都是比较容易备份和还原的,这两个搭建好了,我们利用备份还原可以快速在另一台机器上搭建同样的一套环境,下面是搭建环境的具体流程。

       2 WSL

       2.1 WSL 安装

       使用 WINDOWS 键 + R,输入 winver,检查 win 版本,确保内部版本号是 . 以上,否则更新 win 到最新版本。

       

       2. 以管理员身份打开 PowerShell 并运行下面命令:

       dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

       dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

       

       3. 重新启动计算机。

       4. 下载 Linux内核更新包[1],然后安装。

       5. 将 wsl2 设置为默认版本, 以管理员身份打开 PowerShell 并运行下面命令:

       wsl --set-default-version 2

       

       6. 安装 Ubuntu . LTS, 打开 Microsoft Store[2],搜索 Ubuntu . LTS[3] 安装, 安装完成后打开 Ubuntu . LTS, 等候几分钟会提示设置用户名和密码,如果不设置用户名和密码直接关闭窗口则默认以 root 登录,epg服务器源码这里我们直接关闭窗口,不设置用户名和密码。

       

       7. 然后重新打开 Ubuntu . LTS 就会进入 Ubuntu . LTS了,我们也可以在 powershell 使用 wsl 这个命令进入 Ubuntu . LTS。

       2.2 WSL 配置

       WSL 每次启动后,windows 都会给它分配一个随机的 IP 地址,这样是不利于我们访问 docker 里的服务的,为了解决这个问题,我们可以创建一个脚本文件 wsl2-ip.bat来给 wsl 分配一个固定的 IP,在每次启动 wsl 后用管理员权限运行这个脚本,文件内容如下:

       @echo off

       setlocal enabledelayedexpansion

       :: set wsl2 ip

       wsl -u root ip addr | findstr "...2" > nul

       if !errorlevel! equ 0 (

       echo wsl ip has set

       ) else (

       wsl -d Ubuntu-. -u root ip addr add ...2/ broadcast ... dev eth0 label eth0:1

       echo set wsl ip success: ...2

       )

       :: set windows ip

       ipconfig | findstr "...1" > nul

       if !errorlevel! equ 0 (

       echo windows ip has set

       ) else (

       netsh interface ip add address "vEthernet (WSL)" ...1 ...

       echo set windows ip success: ...1

       )

       pause

       其中 ...2 表示 Linux 的 IP 地址, ...1 表示主机的 IP 地址。

       有时会遇到 Ubuntu . LTS 无法连接网络,这个非常重要,我们可以运行下面命令解决:

       sed -i '4d' /etc/resolv.conf

       sed -i '3a\nameserver 8.8.8.8' /etc/resolv.conf

       sed -i '4a\nameserver ...' /etc/resolv.conf

       2.3 Ubuntu 配置

       2.3.1 替换镜像源

       1. 备份 sources.list 文件,运行下面命令:

       mv /etc/apt/sources.list /etc/apt/sources.list.bak

       2. 创建 source.list 文件,运行下面命令:vim /etc/apt/sources.list

       3. 然后在文件里添加下面内容,下面源任选其一即可。

       # 清华源

       # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

       deb /ubuntu/ focal main restricted universe multiverse

       # deb-src /ubuntu/ focal main restricted universe multiverse

       deb /ubuntu/ focal-updates main restricted universe multiverse

       # deb-src /ubuntu/ focal-updates main restricted universe multiverse

       deb /ubuntu/ focal-backports main restricted universe multiverse

       # deb-src /ubuntu/ focal-backports main restricted universe multiverse

       deb /ubuntu/ focal-security main restricted universe multiverse

       # deb-src /ubuntu/ focal-security main restricted universe multiverse

       # 预发布软件源,不建议启用

       # deb /ubuntu/ focal-proposed main restricted universe multiverse

       # deb-src /ubuntu/ focal-proposed main restricted universe multiverse

       # 阿里源

       deb /ubuntu/ focal main restricted universe multiverse

       #deb-src /ubuntu/ focal main restricted universe multiverse

       deb /ubuntu/ focal-updates main restricted universe multiverse

       #deb-src /ubuntu/ focal-updates main restricted universe multiverse

       deb /ubuntu/ focal-backports main restricted universe multiverse

       #deb-src /ubuntu/ focal-backports main restricted universe multiverse

       deb /ubuntu/ focal-security main restricted universe multiverse

       #deb-src /ubuntu/ focal-security main restricted universe multiverse

       deb /ubuntu/ focal-proposed main restricted universe multiverse

       #deb-src /ubuntu/ focal-proposed main restricted universe multiverse

       #网易源

       deb /"]

       }

       3 Scoop

       3.1 Scoop 安装

       1. 以管理员权限打开 PowerShell 。

       2. 自定义用户软件和全局软件安装位置,运行下面命令:

       $env:SCOOP='D:\Softwares\Scoop\LocalApps'

       [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')

       $env:SCOOP_GLOBAL='D:\Softwares\Scoop\GlobalApps'

       [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

       

       3. 配置安全策略以及安装 Scoop,运行下面命令:

       Set-ExecutionPolicy RemoteSigned -scope CurrentUser

       Invoke-Expression (New-Object System.Net.WebClient).DownloadString('域名,java源码看不懂查询对应的 IP 地址。

       

       3. 配置 C:\Windows\System\drivers\etc\hosts文件,在修改前赋予 hosts 文件读写权限。

       

       

       

       4. 修改 host 文件内容如下,第一列是查询出来的ip地址,第二列是其对应的域名,中间有个空格。

       

       5. 保存后重新运行安装命令。

       Invoke-Expression (New-Object System.Net.WebClient).DownloadString('/chawyehsu/dorado

       scoop bucket add Ash /Ash/Scoop-Ash.git

       scoop bucket add pleiades /jfut/scoop-pleiades.git

       scoop bucket add Scoop-Apps /ACooper/scoop-apps

       scoop bucket add scoop-zapps /kkzzhizhou/scoop-zapps

       scoop bucket add lemon /hoilc/scoop-lemon

       scoop bucket add raresoft /L-Trump/scoop-raresoft

       

       4. 如果软件仓库添加失败,还是因为网络的原因,大家可以把这些仓库 fork 到自己的码云账户下,然后再添加。

       5. 使用 aria2 来加速软件的安装:

       scoop install aria2 -g

       scoop config aria2-max-connection-per-server

       scoop config aria2-split

       scoop config aria2-min-split-size 1M

       如果想关闭 aria2,可以运行 scoop config aria2-enabled false命令。

       3.4 Scoop 常用命令

       # 搜索app

       scoop search <应用名>

       # 检查哪些软件有更新

       scoop status

       # 版本切换

       scoop reset <应用名>@<版本切换>

       # 禁止某app更新

       scoop hold <应用名>

       # 更新所有app

       scoop update

*

       # 安装app

       scoop install <应用名>

       #全局安装app

       scoop install -g <应用名>

       #安装extras软件源下的app

       scoop install extras/<应用名>

       # 卸载app

       scoop uninstall <应用名>

       # 卸载全局安装的app

       scoop uninstall -g <应用名>

       4 总结

       开发环境软件的安装与配置到这里就完成了,利用上面这些软件,你可以快速搭建 Java、Go、C++、Python等开发环境。

       参考资料

       [1]Linux内核更新包: /store/apps/9n6svws3rx

       [4]IP地址查询网站: /

一文分析Linux内核OOM机制(值得收藏)

       Linux内核通过过度分配内存策略,间接利用未被完全使用的内存,以提高整体内存效率。然而,学校教务oa系统源码当内存需求超过物理内存时,OOM killer机制会介入,通过杀掉占用内存过大的进程来保证系统运行。这就像银行面对全民取款压力时,会限制部分账户的取款。oom killer会在日志中记录操作,如"Out of Memory: Kill process (sshd)",表明sshd进程被杀以缓解内存压力。

       oom killer机制针对内存占用过大且瞬间消耗的进程进行监控,通过内核源代码linux/mm/oom_kill.c中的算法,如select_bad_process()和oom_badness()来决定优先杀死哪个进程。进程的oom_score是决定因素,调整oom_adj参数可以控制进程被优先级杀掉的可能性,如将MySQL进程的oom_adj设置为-,可以降低其被杀概率。

       在极端情况下,可以通过设置内核参数vm.overcommit_memory来调整内存分配策略,甚至完全禁止过度分配。此外,可以通过查看/proc/PID/oom_adj或oom_score来找出最易被oom killer杀死的进程,并进行相应的调整。需要注意,oom killer不适用于解决内存泄漏问题,且在某些旧版本的内核中,oom killer的精确性可能存在不足。

       为了验证OOM机制,可以手动创建大内存占用的进程,观察其被杀死的动态过程。通过设置oom_adj参数,可以主动控制哪些进程在内存不足时被优先保护。同时,内核提供了设置来决定在内存严重不足时是直接panic还是执行oom killer,以便在必要时进行系统重启或保护关键进程。

知名压缩软件xz被发现有后门,影响有多大?如何应对?

       知名压缩软件xz被发现存在后门,这一问题的揭露是由Andres Freund发现sshd进程的CPU占用率异常后进行的深入调查所促成的。

       对比分析有后门的m4脚本与原版,很难发现其中存在的问题。然而,通过执行命令`grep -aErls "#{ 4}[[:alnum:]]{ 5}#{ 4}$" ./`在源码根目录下,发现执行结果指向了`./tests/files/bad-3-corrupt_lzma2.xz`文件。这个步骤揭示了文件名虽不直接明文出现在构建脚本中,但通过`grep`命令间接匹配并确认了恶意文件的存在。

       进一步分析表明,`gl_[$1]_prefix=echo $gl_am_configmake | sed "s/.*\.//g"`这一行代码提取了恶意文件的扩展名`xz`,实际上对应于`xz`命令行工具的名称。这暗示了解压过程需要先安装`xz-utils`包。整个解压命令的执行环境主要针对Linux系统,而非非Linux系统。

       该脚本通过寻找并读取`config.status`文件来获取源码的根目录,这一过程考虑到许多发行版在编译时会单独建立`build`目录,因此`srcdir`变量保存了源码的位置。然后通过`export`命令随机读取内容,最终执行了一系列命令,其中包含多个行为,揭示了即使在非Debian或RPM系发行版中,尝试在`make`后再次执行`configure`时,也会通过其他途径执行感染。

       对于Debian或RPM系发行版,恶意代码通过将上述恶意脚本注入到`Makefile`中实现,这个过程依赖于源码编译完成后才能进行。而真正感染部分在于将原本应编译自特定源文件的`liblzma_la-crc_fast.o`和`liblzma_la-crc_fast.o`目标文件链接为恶意对象文件,同时替换指令集扩展检测函数。正确的`get_cpuid`原型被故意修改,其中`__builtin_frame_address`旨在获取函数返回地址,这可能在`x_`Linux上用于在寄存器中留下特定地址。

       值得注意的是,发布带有后门的作者Jia Tan曾在两个月前与Sam James讨论过与GCC相关的bug导致`ifunc`函数符号覆盖功能不正确的问题,最终确认了这是一个GCC的bug。

       提交代码时的实名要求对项目维护具有重要意义,尤其是当代码引发法律问题时。在Linux等重要项目中,有提交权限的人通常被强制要求实名。通过“签核”程序,开发者需在补丁说明末尾添加证明其身份的一行,确保贡献的合法性和追踪性。

       项目中采用的签署选项有助于确定提交者和审查者的身份。在更严格的场合,代码提交可能需要使用GPG签名,而线下会议可能举办Key signing party来交换GPG公钥,确保线上身份与现实一致,并获得其他人的承认。实名制是维护代码质量和法律责任的关键,虚拟人物或匿名用户无法承担相应的法律责任。

linux系统管理命令shutdown源码linux系统管理命令

       linux系统管理--htop命令的使用?

       1、Htop是一个非常高级的交互式的实时linux进程监控工具。它和top命令十分相似,但是它具有更丰富的特性,例如用户可以友好地管理进程,快捷键,垂直和水平方式显示进程等等。Htop是一个第三方工具,它不包含在linux系统中,你需要使用YUM包管理工具去安装它。

       2、CentOS安装htop

       #yum-yinstallhtop

       3、截图

       如何在linux上用命令实现用户和组的管理?

       Linux上用命令实现本地用户和组的管理

       本地用户和组:管理文件和进程等等

       本地用户和组:

       1)root:超级管理员系统创建的第一个账户

       特点:

       id为:0

       家目录:/root

       具有系统的完全控制权:小心使用。

       #id

       uid=0(root)gid=0(root)groups=0(root)context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c

       #

       2)普通用户:不具有管理员权限

       特点:

       id范围:

       =id=

       家目录:/home/用户名

       #idstudent

       uid=(student)gid=(student)groups=(student),(wheel)

       #

       3)服务用户:为服务提供权限

       特点:

       id范围:

       0id

       家目录:应用程序服务目录

       #idapache

       uid=(apache)gid=(apache)groups=(apache)

       #

       如果是yum,rpm安装的软件:由rpm包中的脚本创建服务账户

       Includeconf.modules.d/*.conf

       #

       #Ifyouwish_err-devel libselinux-devel pam-* openssl-devel pkgconfig vsftpd zlib*。

       为了安全起见,备份原有的SSH服务版本,执行以下命令:

       将/etc/ssh重命名为/etc/ssh.bak。

       将/usr/bin/ssh重命名为/usr/bin/ssh.bak。

       将/usr/sbin/sshd重命名为/usr/sbin/sshd.bak。

       下载最新版本的OpenSSH安装包,即openssh-9.7p1.tar.gz,并将此安装包通过WinSCP上传至/opt文件夹。

       卸载原有版本的OpenSSH rpm安装包,先查看是否需要删除的依赖包,然后执行卸载命令。如果提示有依赖文件,则使用强力删除模式:

       使用rpm -e `rpm -qa | grep openssh`卸载。

       若提示依赖文件存在,则使用rpm -e `rpm -qa | grep openssh` --nodeps强力删除。

       编译并安装新版本的OpenSSH,首先解压下载的安装包,然后进入解压路径编译安装:

       使用cd /opt进入目录。

       解压安装包tar zxvf openssh-9.7p1.tar.gz。

       使用命令cd /opt/openssh-9.7p1/进入安装目录。

       执行./configure --sysconfdir=/etc/ssh进行配置。

       验证OpenSSH的执行路径,执行命令:which sshd。

       复制源码解压路径下的开机启动脚本sshd.init到/etc/init.d/文件夹,并启动sshd服务:

       使用cp /opt/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd复制。

       使用systemctl daemon-reload和service sshd start启动sshd服务。

       修改配置文件sshd_config,允许root用户通过ssh远程登录,使用命令:sed -i "/#PermitRootLogin prohibit-password/c\PermitRootLogin yes" /etc/ssh/sshd_config修改。

       复制源码解压路径的ssh-copy-id文件至/usr/local/bin/,并赋予执行权限:

       使用cp /opt/openssh-9.7p1/contrib/ssh-copy-id /usr/local/bin/复制。

       使用chmod +x /opt/openssh-9.7p1/contrib/ssh-copy-id设置权限。

       最后,验证OpenSSH更新是否成功,执行/usr/local/bin/ssh -V命令查看结果,若显示为OpenSSH_9.7p1,则更新完成。

       完成以上步骤后,使用命令mv /etc/security.bak /etc/security重新启用安全文件。