
账号安全
who 查看当前登录用户(tty本地登陆 pts远程登录)
w 查看系统信息,想知道某一时刻用户的行为
uptime 查看登陆多久、多少用户,负载
1、用户信息文件
/etc/passwd
root:x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell用户名:密码:用户ID:组ID:用户说明:家目录:登陆之后shell
注意:无密码只允许本机登陆,远程不允许登陆
2、影子文件
/etc/shadow
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::用户名:加密密码:密码最后一次修改日期:两次密码的修改时间间隔:密码有效期:密码修改到期到的警告天数:密码过期之后的宽限天数:账号失效时间:保留
/etc/passwd 存储一般的用户信息,任何人都可以访问;/etc/shadow 存储用户的密码信息,只有 root 用户可以访问
历史命令
通过 .bash_history 查看帐号执行过的系统命令
1、root的历史命令 histroy
2、打开 /home 各帐号目录下的 .bash_history,查看普通帐号的历史命令
历史操作命令的清除:
history -c但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录
检查异常端口
netstat -antlp|more查看下pid所对应的进程文件路径,
运行
ls -l /proc/$PID/exe或file /proc/$PID/exe($PID 为对应的pid 号)检查异常进程
ps aux | grep pid检查开机启动项
开机启动配置文件
/etc/rc.local
/etc/rc.d/rc[0~6].d检查定时任务
crontab -l 列出某个用户cron服务的详细内容Tips:默认编写的crontab文件会保存在 (/var/spool/cron/用户名 例如:
/var/spool/cron/rootcrontab -r 删除每个用户cront任务(谨慎:删除所有的计划任务)crontab -e 使用编辑器编辑当前的crontab文件如:
*/1 * * * * echo "hello world" >> /tmp/test.txt 每分钟写入文件2、利用anacron实现异步定时任务调度
重点关注
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*检查服务
chkconfig --list 命令,可以查看系统运行的服务检查异常文件
检查系统日志
日志默认存放位置:
/var/log/查看可登录的账户
cat /etc/passwd|grep '/bin/bash'查看所有用户最后的登录信息 lastlog
查看用户最近登录信息 last 其中,/var/log/wtmp 存储登录成功的信息、btmp 存储登录失败的信息、utmp 存储当前正在登录的信息
查看当前用户登录系统情况
who系统信息
查看当前系统状态
top操作系统信息
uname -a查看当前系统进程信息
ps查看历史命令
history列出本机所有的连接和监听的端口
netstat查看谁在使用某个端口
lsof用户登录
查看当前用户登录系统情况
who分析超级权限账户
awk-F: '{if(3==0)print3==0)print 3==0)print1}'/etc/passwd查看可登录的账户
cat/etc/passwd|grep '/bin/bash'查看用户错误的登录信息
lastb查看所有用户最后的登录信息
lastlog后台对访问进行统计,如果单个 IP 访问超过阈值,予以封锁
后台对访问进行统计,如果单个 session 访问超过阈值,予以封锁
后台对访问进行统计,如果单个 userAgent 访问超过阈值,予以封锁
以上的组合
Linux下查找服务端口的命令
Linux下查找服务端口的命令?一句话查找80端口服务的命令?
使用grep 命令 要使用 grep 命令在Linux 中查找指定服务的默认端口号,只需运行
grep <port> /etc/services
grep services /etc/services网络层
awk sed的使用
awk '{ print }' filename---打印文件的每一行
awk '{ sum += $1 } END { print sum }' ----filename计算文件中数字的总和
sed 's/old/new/g' filename ---替换文件中old为new#include <iostream>
int main() {
std::cout << " C++: Hello, World!" << std::endl;
return 0;
}print(" pyhon : Hello, World!")<?php
echo " php: Hello, World!";
?>public class HelloWorld {
public static void main(String[] args) {
System.out.println("Java Hello, World!");
}
}<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> html: Hello, World!</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>console.log("JavaScript: Hello, World!");