11.23 LINUX读书笔记
Community Enterprise Operating System centos社区企业操作系统
Rpm -ivh 安装软件
Rpm -uvh 升级软件
Rpm -e 卸载软件
Rpm-qpi 查询软件
Rpm -qpl 列出软件信息
Rpm -qf 查询软件属于哪个rpm命令格式
Yum install 安装
Yun update 升级
Yum remove 移出
Yum reinstall 重新安装
Yum groupinstall 安装软件包组
Yum groupremove 移出软件包租
Yum clean all 清除缓存
Yum cheak-update 检查更新
RHEL7采用 system初始化进程服务
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/ system/default.target 切换多用户 无图形模式
systemctl start foo.service 启动服务
systemctl restart foo.service 重启服务
systemctl stop foo.service 停止服务
systemctl reload foo.service 重新加载配置文件(不终止服务)
systemctl status foo.ser 查看服务状态
systemctl enable foo.servi 开机自启动
systemctl disable foo.service 开机不自动启动
systemctl is-enabled foo.service 查看是否自启动
systemc list-unit-files –type=service 查看各个级别下服务的启动状态
1.使用虚拟机安装LINUX时不能直接选择RHEL7系统就像光盘,因为VM虚拟机会使用内置的安装向导自动进行安装,导致最后安装出来的系统跟我们后续进行试验所需的系统环境会不一致
2.RPM与YUM仓库的作用
RPM是为了简化安装的复杂度,而Yum软件仓库是为了解决软件包之间的依赖关系
依赖关系打个比方,比如管理员在安装LAMP时,包需要libgd.so文件,而这个文件属于GD软件包。但是在安装GD软件包时,可能这个软件包跟其他软件包又具有依赖关系
程序员在编程的时候回把代码连接到共享库,如果链接是静态的,编译后的共享库对象代码就要添加到程序的执行文件中;如果是动态的,就只需要在运行时加载。Rpm依赖性尝试在安装时强制实行动态可执行文件的共享对象需求,以便在以后当程序运行时不会有与动态链接过程有关的任何问题
Man man 查看命令帮助信息
Echo XXX提取字符串或者变量提取后的值 ep:echo Linuxprobe.com
date “+%Y-%m-%d %H:%M:%S” 查看当前时间
date -s “20170901 8:30:00” 修改当前时间
Poweroff 关机 只有在root下可以执行
Wget [参数] 下载地址 -----下载网络文件
递归下载 和下载全部资源会保存到当前目录下的以下载地址命名的文件夹中
Ps -a显示所有进程
Ps -x 显示没有控制终端的进程
Ps -r 用户以及其他详细信息
➢ R(运行)进程正在运行或在运行队列中等待。
➢ S(中断)进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该
状态。
➢ D(不可中断)进程不响应系统异步信号,即便用 kill 命令也不能将其中断。
➢ Z(僵死)进程已经终止,但进程描述符依然存在, 直到父进程调用 wait4()系统函数
后将进程释放。
➢ T(停止)进程收到停止信号后停止运行。
Top 动态见识进程活动与系统负载信息
Pidof 进程 查询进程的PID
Kill PID 杀死某个进程
Ifconfig 查询网卡配置与网络状态
Uname -a 查询系统内核与系统版本
cat /etc/redhat-release 查询当前系统版本的详细信息
uptime 查看系统的负载信息(可以用来看系统运行时间 启动终端数量以及平均负载信息1 5 15分钟)
free -h 查看内存使用量
who 查看当前登入的用户信息
last 查询所有系统的登录信息(但其中信息是以日志文件的保存形式 很容易篡改)
怎么修改
修改last日志,需修改/var/log/wtmp文件,但/var/log/wtmp 文件时二进制,
通过下面命令将二进制文件转换为可编辑文件 wtmp.file
utmpdump /var/log/wtmp >/var/log/wtmp.file
编辑/var/log/wtmp.file 删除部分login记录,或修改登录记录,
比如删除所有zabbix用户相关的记录:
sed -i "/zabbix/d" wtmp.file
修改完成后通过如下命令重新生成last二进制文件:
utmpdump -r < /var/log/wtmp.file > /var/log/wtmp
修改完成,可用last命令查看修改结果。wtmp文件可用utmpdump
在二进制与正常可编辑文件之间转换。
那既然last很容易被修改 怎么判断是否被入侵
1.查看日志信息是否存在或者是否被清空
Ll -h /var/log/*
Du -sh /var/log/*
2.查看/etc/passwd以及/etc/shadow文件是否创建新的存放用户名以及密码文件
Ll /etc/pass*
Ll /etc/sha*
3.对etc/passwd及/etc/shadow文件内容进行鉴别
More /etc/passwd
More /etc/shadow
4.查看机器最近成功登陆的事件和最后一次不成功登录事件 对应“/var/log/lastlog”
Lastlog
5.查看机器当前登录的全部用户,对应“/var/run/utmp”
Who
6.查看机器创建以来登录过得用户 对应“/var/log/wtmp”
Last
7.查看机器所有用户的连接时间 对应“/var/log/wtmp”
Ac -dp
8. 如果发现机器产生了异常流量,可以使用命令“tcpdump”抓取网络包查看流量情况
或者使用工具”iperf”查看流量情况。
9.查看/var/log/secure日志文件,尝试发现入侵者信息
Cat /var/log/secure |grep -I “accepted password”
10.查询异常进程所对应的执行脚本文件
Top查看
Ll /proc/异常的PID/ |grep -I exe
Ll 上一步查询出来的地址
假如 入侵者删除了某个文件 但是文件在系统中还有进程正在访问
Lsof| grep 文件的地址(这里假设是log下的secure)
Lsof | grep /var/log/secure
Xxxx PID root 几w
Cat /proc/PID/fd/几 >/var/log/secure
More 文件名 查看纯文本文件(内容较多的)
Head -n 多少行 文件名 查看文本的前多少行
Tail -n 多少行 文件名 查看文本的后多少行
Tail -f 文件名 持续刷新一个文件的内容(查看实时最新日志文件)
Tr [原始字符] [目标字符] ep: cat a.cfg |tr [a-z] [A-Z] 把所有小写换成大写 替换文本中的字符
Wc -l(行数)/-w(单词数)/-c(字节数) 文本 统计指定文本的行数、字数、字节数
Stat 文件名称 查看文件的具体存储信息和时间信息
Diff –brief 文件名1 文件名2 比较多个文本文件的差异(在前面加上-c可以查看具体点)
Mkdir 创建目录 (-p 递归创建)
Cp 复制
Mv 移动
Rm 删除 (-r 删除目录)
Dd if=文件目录 of=输出的文件名 bs=数据块大小 于按照指定大小和个数的数据块来复制文件或转换文件(能用来生成镜像文件 在LINUX中)
File 文件名 查看文件类型
Tar 打包文件
Grep 搜素匹配工具 (-n和-v比较实用)
Find [查找路径] 查找条件 操作
Ep:find /etc -name “host*” -print
find / -perm -4000 -print