系统安全及应用

一:账号安全控制

1.1 系统账号清理

1.1.1 将非登陆用户的Shell 设置为 /sbin/nologin  (设置为这个解释器,禁止用户登陆)

[root@localhost ~]# usermod -s /sbin/nologin  zhangsan           #将用户zhangsan 的登录解释器 设置为 /sbin/nologin
[root@localhost ~]# echo "123456" | passwd --stdin zhangsan
更改用户 zhangsan 的密码 。
passwd:所有的身份验证令牌已经成功更新。

在登录界面,登录zhangsan 的账号, 发现,输入完 用户账号 和 密码 后, 又会返回到登录界面

1.1.2 锁定上期不使用的账号

usermod  -L  用户名  或者    passwd -l  用户名     ##锁定用户

usermod  -U 用户名   或者    passwd -u  用户名    ## 解锁用户

passwd   -S  用户名               #查看用户状态

[root@localhost ~]# passwd -S zhangsan
zhangsan PS 2021-06-25 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
[root@localhost ~]# passwd -l zhangsan       #锁定用户zhangsan
锁定用户 zhangsan 的密码 。
passwd: 操作成功
[root@localhost ~]# passwd -S zhangsan         #查看用户 zhangsan 的账号状态
zhangsan LK 2021-06-25 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# usermod -U zhangsan         #解锁用户 zhangsan
[root@localhost ~]# passwd -S zhangsan
zhangsan PS 2021-06-25 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

1.1.3 删除无用 的账号

userdel  [-r]  用户名

[root@localhost ~]# userdel -r zhangsan         #删除用户zhangsan , 选项  -r  表示连同它的家目录一起删除
[root@localhost ~]# id zhangsan
id: zhangsan: no such user

1.1.4 锁定账号文件  /etc/passed  /etc/shadow

chattr +i  文件       #锁定文件

chattr  -i   文件       #解锁文件

lsattr      文件         #查看文件是否锁定

# 修改用户信息会 涉及 到  /etc/passwd  和   /etc/shadow  两个文件。将这两个文件锁定,将无法 管理用户 ,如 删除/新建用户 , 修改密码等操作

[root@localhost ~]# lsattr /etc/passwd /etc/shadow          #查看/etc/passwd 和 /etc/shadow 文件是否已经锁定
---------------- /etc/passwd
---------------- /etc/shadow
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow       #将/etc/passwd /etc/shadow 文件锁定     
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
----i----------- /etc/passwd
----i----------- /etc/shadow[root@localhost ~]# id zhangsan
id: zhangsan: no such user
[root@localhost ~]# useradd zhangsan                      #创建用户失败
useradd:无法打开 /etc/passwd
[root@localhost ~]# id test
uid=1000(test) gid=1000(test) 组=1000(test),10(wheel)
[root@localhost ~]# echo '123456' |passwd --stdin test    #修改用户密码失败
更改用户 test 的密码 。
passwd: 鉴定令牌操作错误
[root@localhost ~]# userdel test                           #删除用户失败
userdel:无法打开 /etc/passwd[root@localhost ~]# chattr -i /etc/passwd /etc/shadow       #解除 /etc/passwd 和 /etc/shadow 文件锁定     
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow
[root@localhost ~]# useradd zhangsan                     #解除锁定后,添加用户成功
[root@localhost ~]# id zhangsan
uid=1002(zhangsan) gid=1002(zhangsan) 组=1002(zhangsan)

1.2  密码安全控制

 1.2.1 设置密码有效期

(1) 对于未创建的用户。修改 新建用户配置文件  /etc/login.defs , 修改字段  PASS_MAX_DAYS  的值

[root@localhost ~]# vim /etc/login.defs    #修改新用户配置文件 
PASS_MAX_DAYS   30                         #设置密码有效期为 30 天[root@localhost ~]# useradd wangwu          #创建信用户
[root@localhost ~]# cat /etc/shadow | grep wangwu
wangwu:!!:18803:0:30:7:::                  # 新用户密码有效期为30#/etc/shadow 的第 5 个字段保存 用户密码最长有效天

(2) 对于已有用户,使用 chage  -M 时间  账户    #只有root 用户才可以使用 chage 命令

[root@localhost ~]# cat /etc/shadow | grep test
test:密码加密数据:18803:0:99999:7:::            #此时,test 用户的密码 有效期 为99999 表示永不过期
[root@localhost ~]# chage -M 30 test           #设置test 用户密码有效期为30 天
[root@localhost ~]# cat /etc/shadow | grep test
test:密码加密数据:18803:0:30:7:::              #成功设置test 用户密码有效期为30 天

1.2.2 要求用户下一次 登录时修改密码  

chage -d 0 用户名

[root@localhost ~]# cat /etc/shadow | grep wangwu
wangwu:!!:18803:0:30:7:::                        #表示上一次修改密码时间(从1970.01.01 开始计算),
[root@localhost ~]# chage -d 0 wangwu           #设置用户wangwu 下一次登录时修改密码
[root@localhost ~]# cat /etc/shadow | grep wangwu
wangwu:!!:0:0:30:7:::                             #0表示下次登录强制修改密码

1.3 历史命令限制

历史命令,可以查看到用户之前输入的命令。 

history  可以查看到用户的历史命令。历史命令默认保存1000 条。保存在 用户家目录 的  .bash_history  隐藏文件中

history  -c  可以清空历史命令。但是,用户家目录下的 .bash_history 文件中依旧保存着历史命令

!命令字   可以执行最近使用的该命令字开头的命令

! 加编号   可以执行该编号的历史命令

[root@localhost ~]# !ls      #调用最近一次以  ls  开头的命令
lsattr /etc/passwd /etc/shadow   #这个是最近一次 以 ls 开头的命令,执行这个命令 
---------------- /etc/passwd
---------------- /etc/shadow

[root@localhost opt]# ls
rh
[root@localhost opt]# history    #查看历史命令
1 ls
2 cd .
3 rm -rf shadow.txt
4 ls
5 history
[root@localhost opt]# !1           #执行编号为 1 的历史命令
ls
rh

1.3.1 设置历史命令的数目

历史命令的配置 在 全局文件  /etc/profile 中 。有个 字段  HISTSIZE=1000,设置了历史命令的数目

 可以修改  HISTSIZE 的值 ,或者  新添加 字段  export  HISTSIZE ,并设置数值

[root@localhost opt]# vim /etc/profile     #修改全局配置文件
export HISTSIZE=30                         #设置历史命令数为30   
[root@localhost opt]# source /etc/profile   #重新加载文件 

1.3.2 设置登录时自动清空历史命令

用户每次登录时,都会加载 家目录下的 .bashrc  文件。用户的历史命令保存在 用户家目录的 .bash_history  文件中

所以,我们可以在 用户家目录下的 .bashrc  文件 中设置命令 来清空  家目录 下的 .bash_history 文件

root@localhost ~]# echo "echo '' >~/.bash_history " >> ~/.bashrc  #将  echo '' > ~/.bash_history  追加重定向写入 到 ~/.bashrc 文件中
#echo '' > ~/.bash_history  表示 将空字符 覆盖重定向写入 到  ~/.bash_history 文件中[root@localhost ~]# history1  ifconfig2  ping www.baidu.com3  cd /etc/sysconfig/4  ls5  cd network-scripts/6  ls
[root@localhost ~]# init 6        #重启系统
[root@localhost ~]# history      #历史命令被清空1  history

1.4 终端自动注销

修改全局配置文件   /etc/profile  ,添加 字段   export  TMOUT ,并设置数值(单位为秒)

[root@localhost ~]# echo "export TMOUT=600" >> /etc/profile   #设置终端闲置600s 自动注销
[root@localhost ~]# source /etc/profile        #重新加载文件

1.5 限制使用su 命令切换

将允许使用su 命令的用户加入到 wheel 组中

启用pam_wheel  认证模块 。 编辑 文件 /etc/pam.d/su 

[root@localhost ~]# grep "wheel" /etc/group     #查看wheel 组有哪些用户
wheel:x:10:test
[root@localhost ~]# gpasswd -a zhangsan wheel    #将zhangsna 用户加入 wheel 组中
正在将用户“zhangsan”加入到“wheel”组中
[root@localhost ~]# grep "wheel" /etc/group
wheel:x:10:test,zhangsan[root@localhost ~]# vim /etc/pam.d/su            #编辑 /etc/pam.d/su 文件
6//  auth            required        pam_wheel.so use_uid   #将文件 第6 行注释打开, 启用 pam_wheel 认证模块[lisi@localhost ~]$ whoami
lisi
[lisi@localhost ~]$ su - root     #lisi 不在 wheel 组中,所以切换失败
密码:
su: 拒绝权限
[lisi@localhost ~]$ [zhangsan@localhost ~]$ whoami
zhangsan
[zhangsan@localhost ~]$ su - root    #zhangsan 在wheel 组中 ,所以 可以切换
密码:
上一次登录:五 6月 25 10:19:00 CST 2021从 192.168.23.1pts/0 上
最后一次失败的登录:五 6月 25 10:46:41 CST 2021pts/0 上
最有一次成功登录后有 1 次失败的登录尝试。
[root@localhost ~]#

su 的操作记录会记录在 安全日志文件 /var/log/secure 中

1.6 配置sudo 授权 

sudo 命令可以让普通用户 提权, 执行高权限用户 才可以执行的命令

[zhangsan@localhost opt]$ ls -ld          #查看/opt/目录权限,发现只有 root 用户有写(w)的权限
drwxr-xr-x. 3 root root 34 6月  25 10:41 .
[zhangsan@localhost opt]$ whoami 
zhangsan
[zhangsan@localhost opt]$ touch abc.txt    #因为zhangsan 用户没有写(w)的权限,所以写入失败
touch: 无法创建"abc.txt": 权限不够
[zhangsan@localhost opt]$ sudo touch abc.txt  #提权,在执行写入
[sudo] zhangsan 的密码:                        #输入zhangsan 用户密码
[zhangsan@localhost opt]$ ls                 
abc.txt  rh                                    #写入成功

1.6.1配置sudo 授权

vim  /etc/sudoers 或者 visudo   编辑sudo 的配置文件 (注,vim  /etc/sudoers 保存需要强制保存  :wq!)

格式:

用户   主机名=命令程序列表

用户    主机名=(使用哪个用户的权限)  命令程序列表      

[lisi@localhost ~]$ sudo ifconfig ens33:1 192.168.100.100/24    #lisi 用户提权使用ifconfig 命令失败我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:#1) 尊重别人的隐私。#2) 输入前要先考虑(后果和风险)。#3) 权力越大,责任越大。[sudo] lisi 的密码:
对不起,用户 lisi 无权以 root 的身份在 localhost.localdomain 上执行 /sbin/ifconfig ens33:1 192.168.100.100/24。
[lisi@localhost ~]$ exit
登出[root@localhost ~]# vim /etc/sudoers   #修改配置文件 /etc/sudoers 或者 visudo
lisi  ALL=/usr/sbin/*                  #允许lisi 用户在所有主机  使用 /usr/sbin/下的所有命令
[root@localhost ~]# su - lisi[lisi@localhost ~]$ sudo ifconfig ens33:1 192.168.100.100/24   #提权使用ifconfig 命令成功
[sudo] lisi 的密码:
[lisi@localhost ~]$ ifconfig ens33:1
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.100.100  netmask 255.255.255.0  broadcast 192.168.100.255ether 00:0c:29:e8:7a:50  txqueuelen 1000  (Ethernet)

1.6.2 /etc/sudoers 文件的编辑语法格式

(1)如果主机没有设置过主机名,可以用localhost 表示本机 。有配置过的则用实际的主机名

(2) 可以使用通配符 *  ,取反符号 !。

lisi  centos=/usr/sbin/*,!/usr/sbin/ifconfig   ,表示lisi 用户可以在 主机名为 centos 的主机上提权使用/usr/sbin/ 下的所有命令,除了 /usr/sbin/ifconfig 命令

(3) ALL 代表所有。

ALL   ALL=ALL  ,表示所有用户在所有主机可以提权使用所有命令

(4)  用% 表示组。

  %wheel    表示wheel 组

(5) 可以使用NOPASSWD:   来免去提权时的密码输入

%wheel  ALL=NOPASSWD:    /usr/sbin/*     #wheel  组用户可以在所有主机上提权使用 /usr/sbin/ 下的所有命令,并且不用输入密码

(6) 支持使用关键字设置和调用别名 ,但是 别名必须大写。关键字 User_Alias、Host_Alias, Cmnd_Alias,分别表示 用户,主机,命令列表

User_Alias  USERS=zhangsan,lisi                            #设置别名,USERS表示 用户zhangsan,lisi

Host_Alias   HOSTS=localhost,centos                      #HOSTS 表示 主机名 localhost ,centos

Cmnd_Alias   CMNDS=/usr/sbin/ifconfig,/usr/sbin/useradd     #CMNDS 表示 命令 /usr/sbin/ifconfig 和 /usr/sbin/useradd

USERS  HOSTS=CMNDS                  #调用别名。

#允许用户zhangsan,lisi ,在本机 和 主机名centos 主机上允许 提权使用命令  /usr/sbin/ifconfig 和命令 /usr/sbin/useradd 

1.6.3 查看 sudo -l  查看用户的提权

[zhangsan@localhost ~]$ sudo -l
[sudo] zhangsan 的密码:
用户 zhangsan 可以在 localhost 上运行以下命令:(ALL) ALL

1.6.4  查看sudo 操作记录

sudo 的默认日志文件 /var/log/sudo 

添加字段   Defaults  logfile="/var/log/sudo"    ,开启日志

二:系统引导和控制登录

2.1 开关机安全控制

2.1.1 调整BIOS 引导设置

(1) 将第一引导设备设置为当前系统所在硬盘

(2) 禁止从其他设备(光盘,U盘,网络)引导设备

(3)将安全级别设为setup ,并设置管理员密码

2.1.2 GRUB 限制

重启系统时,按 e 直接就可以进入GRUB 菜单。需要进行限制,设置密码

[root@localhost ~]# grub2-mkpasswd-pbkdf2              #设置密码 
输入口令:
Reenter password: 
PBKDF2 hash of your password is   grub.pbkdf2.略过,这是一长串的密码加密[root@localhost ~]# cp /boot/grub2/grub.cfg  /boot/grub2/grub.bak
[root@localhost ~]# cp /etc/grub.d/00_header  /etc/grub.d/00_header.bak         #备份这两个文件[root@localhost ~]# vim /etc/grub.d/00_header         #编辑文件
cat << EOF
set superusers="root"
password_pbkdf2 root grub.pbkdf2......
EOF[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

 重启系统,进入grub 菜单需要输入账户和密码

2.2 终端登录控制

2.2.1 限制root 只在安全终端登录

安全终端配置 /etc/securetty 

[root@localhost logs]# vim /etc/securetty   #编辑配置文件,将禁止root 登录的终端注释。如注释 tty2,就禁止root在tty1 终端登录
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9

2.2.1 禁止普通用户登录

建立 /etc/nologin  文件。 建立后,所有的普通用户将无法登录。删除文件后,恢复正常。或者重启系统后,/etc/nologin 文件自动消失

[root@localhost ~]# touch /etc/nologin 

三:网络端口扫描

3.1 NMAP 工具扫描

(1) 下载软件包

[root@promote ~]# rpm -qa |grep nmap
nmap-6.40-7.el7.x86_64    #如果没有安装此软件包,则下载
nmap-ncat-6.40-19.el7.x86_64[root@promote ~]# yum -y install nmap

(2) 使用nmap 工具

nmap命令常用的选项和扫描类型

-p:指定扫描的端口.

-n  :禁用反向DNS解析(以加快扫描速度)。

-sS: TCP的SYN扫描(半开扫描) ,只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。

-sT  : TCP连接扫描,这是完整的TCP扫描方式(默认扫描类型) ,用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并末开放。

-sF: TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性

-sU: UDP扫描,探测目标主机提供哪些UDP服务, UDP扫描的速度会比较慢

-sP: ICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描

-P0 :跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描

[root@promote ~]# nmap -p 80 192.168.23.0/24  #查看192.168.23.0 网段,开发80 端口的有哪些Starting Nmap 6.40 ( http://nmap.org ) at 2021-06-26 16:59 CST
Nmap scan report for promote.ldns.rate.local (192.168.23.1) #主机iP 地址 
Host is up (0.00015s latency).
PORT   STATE    SERVICE
80/tcp filtered http
MAC Address: 00:50:56:C0:00:08 (VMware)  #主机mac地址[root@promote ~]# nmap -n -sP 192.168.23.0/24   # 快速扫描查看192.168.23.0 网段哪些主机可以ping通Starting Nmap 6.40 ( http://nmap.org ) at 2021-06-26 16:59 CST
Nmap scan report for 192.168.23.1
Host is up (0.000069s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.23.2
Host is up (0.000034s latency).
MAC Address: 00:50:56:ED:B2:47 (VMware)
Nmap scan report for 192.168.23.254
Host is up (0.000043s latency).
MAC Address: 00:50:56:EB:E6:DF (VMware)
Nmap scan report for 192.168.23.10
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 1.96 seconds[root@promote ~]# nmap -n -sT 192.168.23.10    # 快速扫描目标 主机开放的 tcp 端口Starting Nmap 6.40 ( http://nmap.org ) at 2021-06-26 17:00 CST
Nmap scan report for 192.168.23.10
Host is up (0.00036s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
111/tcp open  rpcbindNmap done: 1 IP address (1 host up) scanned in 0.04 seconds

3.2 netstat 命令

netstat命令常用选项:

-a  :显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)

-n :以数字的形式显示相关的主机地址、端口等信息。

-t  :查看TCP相关的信息。

-u  :显示UDP协议相关的信息。

-p  :显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)

-r   :显示路由表信息。

-l   :显示处于监听状态的网络连接及端口信息。

-i  : 显示网卡接口信息

netstat  -natp   #查看正在运行使用tcp 协议的相关信息

netstat -naup    #查看正在运行使用的 udp 协议 相关信息

netstat  -na  | more     # more 查看所有开放的端口信息

netstat  -i  或者   netstat   -ie    #显示网卡接口信息。

 

总结: 

 要保护root 账号,限制普通用户。

账户密码的设置应该复杂,英文,数字,大小写,特殊字符等,都应该有,防止暴力破解

管理普通账号,清理长期不使用的,无用的账号,清理锁定陌生账号。

授予权限要谨慎,不要给普通用户超出范围的权限。

清理历史命令,防止泄露数据。如密码等

能够对系统造成威胁的操作,要设置保护,如进入grub 菜单等

只开放必要端口和业务端口,对于非必要端口,不使用端口,统统关闭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8823.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从源码深入理解One-API框架:适配器模式实现LLM接口对接

1. 概述 one-api 是一个开源的 API 框架&#xff0c;基于go语言开发&#xff0c;旨在提供统一的接口调用封装&#xff0c;支持多种 AI 服务平台的集成。通过 Gin 和 GORM 等框架&#xff0c;框架简化了多种 API 服务的调用流程。通过适配器模式实现了与多种 大模型API 服务的集…

[权限提升] 操作系统权限介绍

关注这个专栏的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 权限提升简称提权&#xff0c;顾名思义就是提升自己在目标系统中的权限。现在的操作系统都是多用户操作系统&#xff0c;用户之间都有权限控制&#xff0c;我们通过 Web 漏洞拿到的 Web 进程的…

多模态论文笔记——ViViT

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细解读多模态论文《ViViT: A Video Vision Transformer》&#xff0c;2021由google 提出用于视频处理的视觉 Transformer 模型&#xff0c;在视频多模态领域有…

【深度之眼cs231n第七期】笔记(三十一)

目录 强化学习什么是强化学习&#xff1f;马尔可夫决策过程&#xff08;MDP&#xff09;Q-learning策略梯度SOTA深度强化学习 还剩一点小尾巴&#xff0c;还是把它写完吧。&#xff08;距离我写下前面那行字又过了好几个月了【咸鱼本鱼】&#xff09;&#xff08;汗颜&#xff…

[免费]基于Python的Django博客系统【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的基于Python的Django博客系统&#xff0c;分享下哈。 项目视频演示 【免费】基于Python的Django博客系统 Python毕业设计_哔哩哔哩_bilibili 项目介绍 随着互联网技术的飞速发展&#xff0c;信息的传播与…

【Docker】Docker入门了解

文章目录 Docker 的核心概念Docker 常用命令示例&#xff1a;构建一个简单的 C 应用容器1. 创建 C 应用2. 创建 Dockerfile3. 构建镜像4. 运行容器 Docker 优势学习 Docker 的下一步 **一、Docker 是什么&#xff1f;****为什么 C 开发者需要 Docker&#xff1f;** **二、核心概…

如何跨互联网adb连接到远程手机-蓝牙电话集中维护

如何跨互联网adb连接到远程手机-蓝牙电话集中维护 --ADB连接专题 一、前言 随便找一个手机&#xff0c;安装一个App并简单设置一下&#xff0c;就可以跨互联网的ADB连接到这个手机&#xff0c;从而远程操控这个手机做各种操作。你敢相信吗&#xff1f;而这正是本篇想要描述的…

基于java线程池和EasyExcel实现数据异步导入

基于java线程池和EasyExcel实现数据异步导入 2.代码实现 2.1 controller层 PostMapping("import")public void importExcel(MultipartFile file) throws IOException {importService.importExcelAsync(file);}2.2 service层 Resource private SalariesListener sa…

linux asio网络编程理论及实现

最近在B站看了恋恋风辰大佬的asio网络编程&#xff0c;质量非常高。在本章中将对ASIO异步网络编程的整体及一些实现细节进行完整的梳理&#xff0c;用于复习与分享。大佬的博客&#xff1a;恋恋风辰官方博客 Preactor/Reactor模式 在网络编程中&#xff0c;通常根据事件处理的触…

Python爬虫学习第三弹 —— Xpath 页面解析 实现无广百·度

早上好啊&#xff0c;大佬们。上回使用 Beautiful Soup 进行页面解析的内容是不是已经理解得十分透彻了~ 这回我们再来尝试使用另外一种页面解析&#xff0c;来重构上一期里写的那些代码。 讲完Xpath之后&#xff0c;小白兔会带大家解决上期里百度搜索的代码编写&#xff0c;保…

docker安装MySQL8:docker离线安装MySQL、docker在线安装MySQL、MySQL镜像下载、MySQL配置、MySQL命令

一、镜像下载 1、在线下载 在一台能连外网的linux上执行docker镜像拉取命令 docker pull mysql:8.0.41 2、离线包下载 两种方式&#xff1a; 方式一&#xff1a; -&#xff09;在一台能连外网的linux上安装docker执行第一步的命令下载镜像 -&#xff09;导出 # 导出镜…

特权模式docker逃逸

目录 1.环境 2.上线哥斯拉 3.特权模式逃逸 1.判断是否为docker环境 2.判断是否为特权模式 3.挂载宿主机磁盘到docker 4.计划任务反弹shell 1.环境 ubuntu部署一个存在CVE-2017-12615的docker: (ip:192.168.117.147) kali(ip:192.168.117.128) 哥斯拉 2.上线哥斯拉…

Direct2D 极速教程(1) —— 画图形

极速导航 Direct2D 简介创建新项目&#xff1a;001-DrawGraphics弄一个白窗口在窗口上画图 Direct2D 简介 大家在学 WINAPI 的时候的时候有没有想过&#xff0c;怎么在一副窗口上画图呢&#xff1f;大家知道 Windows 系统是 GUI 图形用户界面 系统&#xff0c;以 Graphics 图形…

(长期更新)《零基础入门 ArcGIS(ArcScene) 》实验七----城市三维建模与分析(超超超详细!!!)

城市三维建模与分析 三维城市模型已经成为一种非常普遍的地理空间数据资源,成为城市的必需品,对城市能化管理至关重要。语义信息丰富的三维城市模型可以有效实现不同领域数据与IS相信息的高层次集成及互操作,从而在城市规划、环境模拟、应急响应和辅助决策等众多领域公挥作用、…

ArcGIS10.2 许可License点击始终启动无响应的解决办法及正常启动的前提

1、问题描述 在ArcGIS License Administrator中&#xff0c;手动点击“启动”无响应&#xff1b;且在计算机管理-服务中&#xff0c;无ArcGIS License 或者License的启动、停止、禁止等均为灰色&#xff0c;无法操作。 2、解决方法 ①通过cmd对service.txt进行手动服务的启动…

目标跟踪之sort算法(3)

这里写目录标题 1 流程1 预处理2 跟踪 2 代码 参考&#xff1a;sort代码 https://github.com/abewley/sort 1 流程 1 预处理 1.1 获取离线检测数据。1.2 实例化跟踪器。2 跟踪 2.1 轨迹处理。根据上一帧的轨迹预测当前帧的轨迹&#xff0c;剔除到当前轨迹中为空的轨迹得到当前…

物业巡更系统在现代社区管理中的优势与应用探讨

内容概要 在现代社区管理中&#xff0c;物业巡更系统正逐渐成为一种不可或缺的工具。结合先进的智能技术&#xff0c;这些系统能够有效地提升社区管理的各个方面&#xff0c;尤其是在巡检效率和信息透明度方面。通过实时记录巡检数据&#xff0c;物业管理人员能够确保工作人员…

深入探讨防抖函数中的 this 上下文

深入剖析防抖函数中的 this 上下文 最近我在研究防抖函数实现的时候&#xff0c;发现一个耗费脑子的问题&#xff0c;出现了令我困惑的问题。接下来&#xff0c;我将通过代码示例&#xff0c;深入探究这些现象背后的原理。 示例代码 function debounce(fn, delay) {let time…

进程通讯——类型和发展

进程常用交互方法如上

健康AI应用的逆袭:如何用“死亡时钟”撬动用户增长和媒体关注,实现应用榜快速排名第六

Death Clock&#xff1a;一款AI驱动的长寿应用 过去六个月里&#xff0c;我一直在为一款名为 Death Clock 的AI驱动长寿应用提供建议。健康类应用的增长向来十分困难&#xff0c;因为它们通常是单人使用的工具&#xff0c;且主要吸引年长的用户群体。然而&#xff0c;与创始人…