案例一:查看用户创建记录
# cat /var/log/messages | grep -e /usr/sbin/useradd | grep ' ID='
案例二:查看用户删除记录
# cat /var/log/messages | grep -e /usr/sbin/userdel | grep ' ID='
# cat /var/log/messages | grep -e /usr/sbin/useradd | grep ' ID='
# cat /var/log/messages | grep -e /usr/sbin/userdel | grep ' ID='
ECDSA 是 SSH 服务为自己生成的唯一识别,通常一旦生成便不会改变
当 SSH 客户端访问 SSH 服务端时会尝试识别此 SSH 服务端 (以此 SSH 服务端的 IP 地址或者域名为判断依据) 的 SSH ECDSA 码:
如果当 SSH 客户端没有记录过此 SSH 服务端的 SSH ECDSA 码时,SSH 客户端会给出提示并让用户选择是否信任并记录此 SSH ECDSA 码
如果当 SSH 客户端记录过此 SSH 服务端的 SSH ECDSA 码且和过去的记录匹配时,SSH 客户端会直接 SSH 登录此 SSH 服务端
如果当 SSH 客户端记录过此 SSH 服务端的 SSH ECDSA 码且和过去的记录不一致时,SSH 客户端会给出提示此 IP 地址或者域名的 SSH ECDSA 码已发生改变,此时 SSH 客户端无法通过密码 SSH 登录 SSH 客户端,但是可以通过密码登录 SSH 客户端
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ecdsa_key
# ssh-keyscan -t ecdsa <SSH Server IP address>
或者:
# ssh-keyscan -t ecdsa <SSH Server IP domain>
# ssh-keygen -R <SSH Server IP address>
或者:
# ssh-keygen -R <SSH Server IP domain>
# vim ~/.ssh/known_hosts
删除对应的记录:
(步骤略)
# ssh-keygen -t ecdsa -f ssh_host_ecdsa_key
(步骤略)
(步骤略)
(步骤略)
rescue login:root
(步骤略)
(
补充:
1) 物理分区可以使用 lsblk 命令、fdisk -l 或 cat /proc/partitions 命令辅助确定
2) 逻辑分区还可以可以使用 pvs 命令、lvs 命令或 lvdisplay 命令辅助确定
)
tty1:rescue:~ # mount <root spartition> /mnt
(
补充:
1) 如果是物理分区,系统的根 “/” 分区就在救援模式的 /dev/ 目录里,例如救援模式的 /dev/sda1
2) 如果是逻辑分区,Rocky Linux & RHEL 的系统根 “/” 分区就是救援模式里的 /dev// 例如救援模式里的 /dev/vg/lv,openSUSE & SLES 的系统 “/” 分区就是救援模式里的 /dev/mapper/- 例如救援模式里的 /dev/mapper/vg-lv
)
tty1:rescue:~ # mount --rbind /dev /mnt/dev
(
补充:
1) 此时所有对救援模式的 /mnt/dev 目录的访问都会变成对救援模式的 /dev 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:
tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done
)
tty1:rescue:~ # mount --rbind /proc /mnt/proc
(
补充:
1) 此时所有对救援模式的 /mnt/proc 目录的访问都会变成对救援模式的 /proc 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:
tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done
)
tty1:rescue:~ # mount --rbind /sys /mnt/sys
(
补充:
1) 此时所有对救援模式的 /mnt/sys 目录的访问都会变成对救援模式的 /sys 目录的访问
2) 步骤 4.2、步骤 4.3 和步骤 4.4 也可以用以下命令代替:
tty1:rescue:~ # for i in proc sys dev; do mount --rbind /$i /mnt/$i ; done
)
tty1:rescue:~ # mount --rbind /run /mnt/run
(补充:此时所有对救援模式的 /mnt/run 目录的访问都会变成对救援模式的 /run 目录的访问)
tty1:rescue:~ # chroot /mnt
(补充:这里以 /mnt 作为系统根 “/” 目录为例)
bash-4.3# mount -a
bash-4.3# ls
bin boot dev home lib lib64 mnt opt proc root run sbin selinux srv sys tmp usr var
(补充:这里显示的是常见的 Linux 根 “/” 目录 下的目录)
bash-4.3# exit
tty1:rescue:~ # reboot
# startport=33000;endport=34000;for i in $(seq $startport $endport);do nc -lk $i &;done
(Add: Take start port is 33000 and end port is 34000 as an example here)
# for i in $(ps -aux | grep nc | grep '\-lk' | awk '{print $2}');do kill $i; done
# vim /etc/security/access.conf
添加以下内容:
......
+ : root : LOCAL
+ : zhumingyu : ALL
+ : @cron : ALL
- : ALL : ALL
(
补充:这里以
1) 允许 root 用户使用本地的所有功能
2) 允许 zhumingyu 用户使用所有功能
3) 允许 cron 功能被所有用户使用
4) 其它所有的功能或用户都被禁止
为例
)
# vim /etc/pam.d/crond
将部分内容修改如下:
......
#account required pam_access.so
......