1.知名压缩软件xz被发现有后门,源码影响有多大?如何应对?
2.putty怎么用?
3.linux系统管理命令shutdown源码linux系统管理命令
4.一文分析Linux内核OOM机制(值得收藏)
知名压缩软件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公钥,确保线上身份与现实一致,并获得其他人的承认。实名制是维护代码质量和法律责任的关键,虚拟人物或匿名用户无法承担相应的法律责任。
putty怎么用?
putty中文版是一款Linux服务器上传软件,随着php程序的广泛使用,Linux服务器端应用也被我们所使用,想要实现本地与Linux服务器之间相互传输数据,那么FTP服务器是不可缺少的,它不仅为我们提供便利的上传服务,也可让我们更好的管理相关源码程序,而putty中文版是目前Linux服务器中最好用的FTP工具,它完全免费开源,不过很多用户不知道如何正确配置使用Putty,故此小编为大家提供了详细的操作方法,需要的朋友赶快了解下吧!首先在本站下载中文版Putty
SSH登录说明:
打开后默认协议是ssh协议,端口为。
然后输入准备登入的abc接口源码机器的IP地址,若是第一次登入,会出现一个警告。Host key。
HOST KEY唯一标识一台主机 host key (ssh only) prevent spoofing attack
EVENT LOG记录控制信息( 在窗口上右键,选择Event Log )
操作:
复制是直接用鼠标左键拖拉选中就可以了,不用按Ctrl+C,双击选中一个单词,三击选中一行;
粘贴也很简单,不用Ctrl+V,单击鼠标右键即可。
按住ALT键选中的区域是矩形
用 Shift+PageUp/PageDown 来上下翻页,而 Ctrl+PageUp/PageDown 则是一行一行的。
推荐初始:
Session-logging-Session logging:-选中 Printable output logfile name:中输入 putty_H_M_D_T.log
Terminal-keyboard-The Backspace Key-选择正确的退格键 stty -a可以查退格键 不正确的退格键可加SHIFT键退格
Terminal-Bell-选中Beep using the PC speaker或default system alert sound 可用Ctrl+G测试
window-修改成适当的行列,增加 Lines of scrollback (缓冲值可设置成,历史保存的记录多一点)
window-Appearance-Font settings-选择适当的字体(字体可调大)
window-Behaviour-window title 设置为空(可是我不好设置为空,可修改成相对应的IP,主机多时便于辨别)
window-translate-选择适当的character 可查LANG 。有时候会出现乱码的解决方法?
(1)用env | grep LANG 查看该系统所用的语言
(2)然后在character中修改成UTF-8即可。
Window-Colours- 取消 Allow terminal to specify ANSI colurs 可消除server端控制颜色
Window-Colours- select a colour to adjust -Default Foregroud(前端颜色)-Modify-选择适当的前景颜色(白色或绿色)
Connection-Seconds between keepalive -改成一个大于0的数(它就会在秒未有人操作的时候向server发包,保证连接不容易断)
Connection-SSH-X-选择 Enable X forwarding(激活,将图形界面映射到本地.
设置完成后在session中选 Default Settings,linuxtail工具源码然后点击Save
输入Host Name 里的主机地址,在Saved Sessions中输入一个新的名字,然后save
双击打开
putty的命令行
putty.exe [-ssh | -telnet | -rlogin | -raw] [user@]host
D:工具putty-0..putty.exe -ssh ...2
.putty.exe -load vm1
想删除 PuTTY 的配置,就在控制台里输入如下的命令:putty.exe -cleanup
pscp
pscp c:documents*.doc fred@example.com:docfiles
pscp fred@example.com:source/*.c c:source
pscp -ls fred@example.com:dir1
pscp拷贝命令,如下例:
将windows中的文件拷贝到LINUX下:
析:以root用户登录..1.主机,将/root/install.log这个文件拷贝到d盘根目录下。 执行成功。
clip_image
同样,我们也可以将LINUX下的文件拷贝到WINDOWS下:
clip_image
如上中文也是支持的哦。
clip_image
其实在Linux中就有类似的命令:如scp等。 是ssh协议、端口
psftp
psftp fred@hostname -b batchfile
类似Linux中的sftp。
psftp就好似ftp,但ftp同telnet它们都是明文的,不安全。感觉就好像通过一个终端登录到了这个主机上。
clip_image
Plink
Plink (PuTTY Link) is a command-line connection tool similar to UNIX ssh
D:工具putty-0.plink.exe ...2
D:工具putty-0.plink.exe ...2 -l oracle echo hello, world
用plink加9个用户:
C:plink root@..1. "for i in $(seq 1 9); do useradd -d /home/guest$i guest$i; echo guest$i | passwd --stdin guest$i; done"
如果需要一次在多台机器上加用户只需要将上面一行复制修改相应的主机IP即可。
plink root@...2 /etc/backups/do-backup.sh
一个LINUX管理员,可能会管理很多台机器。如果老板让你在每台机子上都做这样的操作,如果我们登录到每一台机子上去修改会很麻烦的。用上述的方法只要修改IP就行了。
用Puttygen生成KEY
生成公钥和私钥,公钥和私钥是非对称加密,可上网搜索相关知识。
公钥放server端,私钥放客户端,就可以需要不输入密码进行登录。
打开PUTTYGEN.EXE这个程序,可在DOS下直接输入puttygen。
选择SSH-2RSA,然后选择Generate,在生成key的过程中需要移动鼠标,PUTT会根据鼠标的随机移动生成一对密钥。
分别选Save public key,保存公钥,再选Save private key保存私钥。
CLIENT端的设置
运行pageant导入客户端的密钥
打开PAGEANT.EXE,在本机添加私钥pri。
设置好后会在右下角出现如下图的一个图标
SERVER端的设置
将公钥加入到要登录的用户的家目录的相应文件中:~/.ssh/authorized_keys,要注意的是,一个public key只占一行,如果贴入后出现多行应该想办法修正到一行,ssh-rsa后面有一个空格,key最后的=和注释之间也有一个空格。
重新启动ssh
# svcadm restart ssh
我们先打开sshd_config这个文件看下
前面加#号表注释掉,默认值就是这些,启用了公钥认证,认证文件在~/.ssh/authorized_keys中。
保存,退出。
你也可以根据自己需要来对.ssh和authorized_keys这个文件的权限进行修改。
现在我们就可以通过用户名直接登录了,而不用输入密码。
小说明:用ll命令查看属性的时候,目录是用蓝色表示的,可通过下图方法来修改,个人不建议修改,还是显示蓝色来的直观。
我们通过ssh可以不需要密码进行了登录。上面介绍的其它命令呢?
使用密钥
将Pageant处于最小化运行状态,在SSH和plink,SCP,SFTP中可以不用输入密码。
以plink为例:
clip_image
有乱码,但试验是成功,不需要密码便可直接执行命令。
以scp为例:
没有建用户等价之前需要输入密码
C:D:工具putty-0.pscp D:工具putty-0.pubkey bbbbb@...:puttypubkey
Using keyboard-interactive authentication.
Password:
pubkey | 0 kB | 0.3 kB/s | ETA: :: | %
建用户等价之后不需要输入密码
C:D:工具putty-0.pscp D:工具putty-0.pubkey bbbbb@...:puttypubkey
pubkey | 0 kB | 0.3 kB/s | ETA: :: | %
Using port forwarding in SSH
用SSH突破防火墙
source 填 destination 填 ...2:
在客户端 telnet .0. 就连接到server端的 号端口
forward localhost: as a sendmail server port
iptables -A INPUT -p tcp --dport -s ...1 -j REJECT
netstat -natp|grep :
telnet localhost
example 2:forward localhost: as a POP-3 server instead of popserver.example.com:.
下 面要说的就是选中单选按钮 Remote 后建立的反向 SSH 隧道,这样的隧道做什么用呢?一般防火墙都是允许从内往外链接,而不允许从外到内的链 接,除非在防火墙上做好nat或端口转发。现在,你在防火墙的内部,但是又想让外面的人链接到你的机器上。防火墙厚厚的城门紧闭,外面的人进不来,只有你 能从里面打开这扇防护严密的大门,就像一个特洛伊木马一样,你主动连接出去建立一个反向的 SSH 隧道,然后外面的人就可以通过这个反向的 SSH 隧 道轻松突破防火墙链接到的你的本地机器。
Source port 这里填写 ,也就是隧道的入口是端口 ,Destination 这里填写 localhost:,也就是隧道的出口是本地的 端口,下面的单选按钮要选 中 Remote,表示建立的隧道是个反向隧道,填写完毕别忘记点 Add 按钮,在上面就可以看到显示的 是 R localhost:。成功登录远程主机 guantouping 后,反向隧道就建立好了。在远程主 机 guantouping 上输入命令 telnet localhost 就可以连接到你的本地端口。
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
#
#Ifyouwishmit_memory来调整内存分配策略,甚至完全禁止过度分配。此外,可以通过查看/proc/PID/oom_adj或oom_score来找出最易被oom killer杀死的进程,并进行相应的调整。需要注意,oom killer不适用于解决内存泄漏问题,且在某些旧版本的内核中,oom killer的精确性可能存在不足。
为了验证OOM机制,可以手动创建大内存占用的进程,观察其被杀死的动态过程。通过设置oom_adj参数,可以主动控制哪些进程在内存不足时被优先保护。同时,内核提供了设置来决定在内存严重不足时是直接panic还是执行oom killer,以便在必要时进行系统重启或保护关键进程。