1. /etc/passwd写一行2. 创建家目录 - 复制 /etc/skel - 修改目录的属主和属组3. /etc/shadow写一行
命令
who命令
作用:检查当前linux的链接会话有几个
[root@localhost ~]# who root tty1 2024-03-19 20:22 root pts/0 2024-03-19 20:06 (172.16.100.1) root pts/1 2024-03-19 20:10 (172.16.100.1) root pts/2 2024-03-19 20:21 (172.16.100.1) root pts/3 2024-03-19 20:21 (172.16.100.1) bob02 pts/4 2024-03-19 20:21 (172.16.100.1)
第一列:链接linux的用户名第二列:链接linux的类型
- tty:表示是在linux中直接进行登录的
- pts/0 ...1:表示是远程连接上来的
第三列:链接的时间第四列:客户端的ip地址
whomai命令
作用 :查看当前会话的用户名
last命令
作用:显示每个用户的登录时间,已经登录状态
lastb命令
作用:记录和现实每个用户登录失败的信息。登录失败一次,这里就会记录一次。案例:统计每个用户的失败次数[root@localhost ~]# lastb | awk -F " " '{print $1}' | sort | uniq -c 1 1 bob02 1 btmp 5 root
w命令
作用:显示每个会话,已经会话中正在执行的命令[root@localhost ~]# w 20:37:34 up 32 min, 3 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 20:22 15:34 0.00s 0.00s -bash root pts/0 172.16.100.1 20:35 6.00s 0.00s 0.00s w root pts/1 172.16.100.1 20:36 22.00s 0.90s 0.00s sleep 1
lastlog命令
作用:显示用户的上一次登录时间等信息
日志文件
/var/log/messages:系统日志文件【重启网络、重启ssh】
Mar 19 20:44:50 localhost systemd: Started OpenSSH server daemon. Mar 19 20:44:56 localhost dhclient[768]: DHCPREQUEST on ens36 to 192.168.13.254 port 67 (xid=0x64360728) Mar 19 20:44:56 localhost dhclient[768]: DHCPACK from 192.168.13.254 (xid=0x64360728) Mar 19 20:44:56 localhost NetworkManager[679]: <info> [1710895496.8349] dhcp4 (ens36): address 192.168.13.196 Mar 19 20:44:56 localhost NetworkManager[679]: <info> [1710895496.8349] dhcp4 (ens36): plen 24 (255.255.255.0) Mar 19 20:44:56 localhost NetworkManager[679]: <info> [1710895496.8349] dhcp4 (ens36): gateway 192.168.13.2 Mar 19 20:44:56 localhost NetworkManager[679]: <info> [1710895496.8349] dhcp4 (ens36): lease time 1800 Mar 19 20:44:56 localhost NetworkManager[679]: <info> [1710895496.8349] dhcp4 (ens36): nameserver '192.168.13.2' Mar 19 20:44:56 localhost dbus[670]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher' Mar 19 20:44:56 localhost systemd: Started Network Manager Script Dispatcher Service. Mar 19 20:44:56 localhost nm-dispatcher: req:1 'dhcp4-change' [ens36]: new request (3 scripts) Mar 19 20:44:56 localhost nm-dispatcher: req:1 'dhcp4-change' [ens36]: start running ordered scripts...
2)/var/log/secure:客户端远程登录linux的ssh的日志文件
【下面的日志是使用一个不存在的账号密码进行登录产生的日志文件】Mar 19 20:48:43 localhost sshd[2956]: Invalid user aaa from 172.16.100.1 port 51705 Mar 19 20:48:43 localhost sshd[2956]: input_userauth_request: invalid user aaa [preauth] Mar 19 20:49:33 localhost sshd[2956]: pam_unix(sshd:auth): check pass; user unknown Mar 19 20:49:33 localhost sshd[2956]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.16.100.1
3)apache或者是nginx的日志,例如access_log error_log192.168.1.8 - - [24/Jan/2024:07:09:44 -0500] "GET / HTTP/1.1" 403 4897 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" 192.168.1.8 - - [24/Jan/2024:07:09:44 -0500] "GET /noindex/css/bootstrap.min.css HTTP/1.1" 200 19341 "http://192.168.1.109/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" 192.168.1.8 - - [24/Jan/2024:07:09:44 -0500] "GET /noindex/css/open-sans.css HTTP/1.1" 200 5081 "http://192.168.1.109/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" 192.168.1.8 - - [24/Jan/2024:07:09:44 -0500] "GET /images/apache_pb.gif HTTP/1.1" 200 2326 "http://192.168.1.109/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
查看日志文件内容变化/分析
tail -f 日志文件
日志文件的滚动
防止日志文件变的过大日志文件的滚动
- 方法1:基于时间
- 方法2:基于空间
find命令
文件查找的命令find:查找速度慢,但是非常精准
- 根据文件名进行查找
locate:查询速度快,但是准确度低
- 安装组件:mlocate
- locate是维护了一个系统的数据库,在数据库中记录了每个文件的文件名和路径
- 数据库是每天定时自动更新。
find的格式
find 搜索路径 查找条件 动作
搜索路径常用写法:1:/ 查找整个linux2:./ 查看当前位置及其子目录3:指定路径,例如:/home/aaa/bbb查找条件1:根据文件名查找 -name2:根据文件类型查找 -type f -type d3:根据文件的权限查找 -perm u=s -perm g=s4:根据文件的时间戳查找 -mtime动作--print:输出查找结果--exec 命令 \; 在find执行结束后,执行一个命令
案例1:在文件系统中,找a.txt文件
[root@localhost yum.repos.d]# find / -name "a.txt" -print
/etc/a.txt
/home/a.txt
/a.txt
案例2:在文件系统中,找后缀是.txt的文件
[root@localhost yum.repos.d]# find / -name "*.txt" -print
案例3:在home下找后缀是txt的文件
[root@localhost yum.repos.d]# find /home -name "*.txt" -prin
案例4:在home下,找后缀txt的文件,并且文件类型是一般文件
[root@localhost home]# find /home -name "*.txt" -type f
/home/aaa.txt
案例5:在系统中,找具有suid的文件的
[root@localhost home]# find / -perm -u=s 2>/dev/null
根据文件的时间戳查找文件的内容
-mtime [+-]n:文件的创建(单位是天)
-ctime [+-]n:文件修改时间(单位是天)
-atime [+-]n:文件的访问时间(单位是天)
说明
n:单位是天
-mtime 5:表示5天之前的那一天所创建的文件
-n:
-mtime -5:表示在5天之内所创建的文件
+n:
-mtime +5:表示在5天之前所创建的文件
-mmin [+-]n: 单位是分钟
-cmin [+-]n: 单位是分钟
-amin [+-]n: 单位是分钟
例子:找出tmp下上次访问时间在7天之前的文件
# find /tmp -atime +7
find执行命令
案例:将所有后缀是txt的文件,都复制到tmp下
[root@localhost home]# find / -name "*.txt" -exec cp -a {} /tmp \;
案例:将/home下后缀是txt的文件删除
[root@localhost home]# find /home/ -name "*txt" -exec rm -rf {} \;
find提权案例
前提:给用户做sudo授权,授权可以执行find命令提权格式:find /xxx -exec /bin/bash \;
网络管理
配置文件
配置文件说明
路径:/etc/sysconfig/network-scripts文件名:ifcfg-网卡名
网卡名:
ip link show
ip addr
网卡配置文件
TYPE=Ethernet # 指定网卡类型
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 指定网卡获取ip类型,static表示静态ip;DHCP表示是动态IP
DEFROUTE=yes
UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # UUDI网卡的id标识,多个网卡的uuid不能
相同
HWADDR=xx-xx-xx-xx-xx-xx-xx # 网卡的mac地址,多个网卡的uuid不能相同
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33 # 网卡名称
DEVICE=ens33 # 网卡名称
ONBOOT=yes # 设置网卡是否激活,yes表网卡激活;no表示网卡禁用
IPADDR=172.16.100.2 # 设置ip地址
NETMASK=255.255.0.0 # 设置子网掩码
GATEWAY=172.16.1.1 # 设置网关
DNS1=8.8.8.8 # 主DNS
DNS2=114.114.114.114
DEVICE:此配置文件应用到的设备
#HWADDR:对应的设备的MAC地址
#BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none,bootp
#NM_CONTROLLED: NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“no”
systemctl stop NetworkManager
systemctl disable NetworkManager
#ONBOOT:在系统引导时是否激活此设备
#TYPE:接口类型;常见有的Ethernet, Bridge
#UUID:设备的惟一标识
#IPADDR:指明IP地址
#NETMASK:子网掩码
#GATEWAY: 默认网关
#DNS1:第一个DNS服务器指向
#DNS2:第二个DNS服务器指向
#USERCTL:普通用户是否可控制此设备
#IPV4_FAILURE_FATAL 如果为yes,则ipv4配置失败禁用设备
添加网卡
第一步:添加一个新网卡
第二步:查看新网卡的网卡名
ip addr
- 找到的名称是ens37
第三步:为新网卡创建配置文件
cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens37 vim ifcfg-ens37
修改文件的内容1. 修改网卡名称2. 修改uuid【建议删除】3. 修改HWADDR【建议删除】4. 修改ip地址等信息TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens37 DEVICE=ens37 ONBOOT=yes
第四步:重启网卡
建议:关闭NetworkManagersystemctl stop NetworkManager systemctl disable NetworkManager
systemctl restart network
检查是否修改成功
ip addr
命令
ifconfig命令
作用
- 1:查看ip地址
- 2:设置ip地址【在内存中设置】
如果没有这个命令,需要安装组件:net-tools
1)查看ip地址
ifconfig ifconfig ens33 ifconfig -a
2)修改ip地址ifconfig 网卡名 ip地址 netmask 子网掩码 up 案例 ifconfig ens37 1.1.1.1 netmask 255.0.0.0 up
ip addr 命令
ip addr
ip addr s 网卡名
ip link show命令
ip link show
ip link show 网卡名
ping命令
1:测试网络
2:解析域名
选项
-c
-w
-4
netstat
ss 是netstat 的升级版
选项
-t:显示基于tcp协议的连接
- xshell链接linux
- 访问网站的http
-u:显示基于udp协议的连接-n:以数字的方式显示连接中的端口-a:显示全部的连接-l:显示等到客户端连接的状态-p:显示链接的进程的进程id【pid】
网络连接的状态
LISTEN:表示服务器端开启了一个端口,但是尚未有客户端进行连接
ESTABLISHED:表示客户端和服务端已经建立了链接
案例:检查当前主机是否开启了22端口
ss -anl | grep 22
lsof命令
作用:检查端口是哪个进程启动的格式:lsof -i :端口
这个命令可能需要自己安装:lsof
案例:判断22端口是哪个进程发起的
[root@localhost ~]# lsof -i :22