来福大酒店
这句话含金量太高了
这句话含金量太高了
具象化了
工作,做得好就好好做,做不好也不要内耗~
大学毕业之后生活像是被按下了快进键,身边人谈论的话题一定会包括买房买车,谈婚论嫁。
我感觉很割裂,人生为什么要这么赶,中学大学不让谈这些,毕业了却马上要按照这些要求进行,总给人拔苗助长的感觉,而且我觉得中国家长的控制欲都好强。一个20多岁的年轻人刚从学校出来,却被要求买车买房结婚生子,这让我太难以接受了。更何况国内教育环境下,大学毕业之后也没多少人真的明白自己的人生到底想干些什么。
我不想别人打乱我的节奏,我还有很多地方没去,我还有很多雪山要爬
几乎每次跟新都会有问题。
certbot每次生成的新证书会放在/etc/letsencrypt/archive/<site-domain>-0001/下面,这个0001会随着次数增加,所以每次更新的证书都不是在apache原配置文件指向的位置,所以得更新。
(certbot生成的结果一般显示/etc/letsencrypt/live/...,但实际上这里只保存软连接,真实文件在archive下)
sudo nano /etc/apache2/sites-available/default-ssl.conf
有时候是什么000-default-ssl.conf文件,自己辨别一下
比如我有次更新的是:
ServerName grav1ty.cn
# 使得 Apache 能够识别来自该域名的请求
SSLCertificateFile /etc/letsencrypt/live/<site-domain>-0002/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<site-domain>-0002/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
# 包含了 Let’s Encrypt 提供的 SSL 配置选项,这通常是推荐的做法,可以提高 SSL 配置的安全性
把里面0002换成0003即可。
检查的时候可以用
openssl s_client -connect:443
查看证书信息,不用每次用浏览器还要清空缓存什么的。
另记:
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
这是apache默认的文件。
此次更新archlinux,又出现了kwallet输入密码且wifi密码需要重新输入的问题。
kwallet是kde管理密码的工具,不只是钱包。
解决办法是
yay -S kwallet-pam
更新报错
xxx签名未知/已过期/不受信任
解决方法
sudo pacman -S archlinux-keyring
sudo pacman-key --refresh-keys
sudo pacman-key --init
sudo pacman-key --populate
sudo pacman -Scc
然后再次更新即可
更新发现KDE只支持2K60Hz,但显示器支持2K165Hz。
#生成一个模型ine,然后使用输出结果中的信息添加模式
cvt 2560 1440 165
#eg.
☁ ~ cvt 2560 1440 165
# 2560x1440 164.90 Hz (CVT) hsync: 261.86 kHz; pclk: 938.50 MHz
Modeline "2560x1440_165.00" 938.50 2560 2792 3072 3584 1440 1443 1448 1588 -hsync +vsync
#!/bin/bash
# 添加新模式: 使用生成的模型线来添加新的显示模式
xrandr --newmode "2560x1440_165.00" 938.50 2560 2792 3072 3584 1440 1443 1448 1588 -hsync +vsync
# 将模式添加到显示器: 然后将该模式添加到你的HDMI-A-2输出
xrandr --addmode HDMI-A-2 "2560x1440_165.00"
# 切换到新的模式
xrandr --output HDMI-A-2 --mode "2560x1440_165.00"
如果还无效,尝试添加或修改X配置/etc/X11/xorg.conf.d/10-monitor.conf:
Section "Monitor"
Identifier "HDMI-A-2"
Modeline "2560x1440_165.00" 938.50 2560 2792 3072 3584 1440 1443 1448 1588 -hsync +vsync
Option "PreferredMode" "2560x1440_165.00"
EndSection
Section "Screen"
Identifier "Screen0"
Monitor "HDMI-A-2"
EndSection
另记:
使用 sudo systemctl restart display-manager 会重启图形登录管理器,这将导致当前用户的会话被终止,并结束所有与该用户相关的进程。这样会关闭所有打开的应用程序和窗口,所以在执行此命令之前,最好先保存你的工作并关闭不需要的程序。
原文:https://www.cnblogs.com/wspblog/p/4710617.html
rc.d的内容如下:
init.d/ :各种服务器和程序的二进制文件存放目录。
rcx.d/: 各个启动级别的执行程序连接目录。里头的东西都是指向init.d/的一些软连接。具体的后边叙述。
还有三个脚本:rc.sysinit, rc, rc.local
redhat的启动方式和执行次序是:
加载内核
执行init程序
/etc/rc.d/rc.sysinit # 由init执行的第一个脚本
/etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式
/etc/rc.d/rc.local
/sbin/mingetty # 等待用户登录
在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括:
调入keymap以及系统字体
启动swapping
设置主机名
设置NIS域名
检查(fsck)并mount文件系统
打开quota
装载声卡模块
设置系统时钟
等等。
/etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的
,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx
从小到大来执行。例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用
/etc/rc.d/rc3.d/下的脚本。
值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中
的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。
init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的
action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。
至此,LINUX的启动结束。
本文如无特殊解释,init.d指的就是/etc/rc.d/init.d目录。
本文包括3部分内容
1、 Linux的引导过程
2、 运行级别
3、 /etc/rc.d/ 与/etc/rc.d/init.d的关系
/etc/rc.d/init.d/目录下的脚本就类似与windows中的注册表,在系统启动的时候某些指定脚本将被执行”。开始之前,先引用李善明经理昨天晚上总结时的一个理解,让大家先对init.d目录有个大概的印象。在进入init.d之前,我们一起来做两个准备工作,linux的引导过程和运行级别的概念。
一、Linux的引导过程
系统加电之后,首先进行的硬件自检,然后是bootloader对系统的初始化,加载内核。
内核被加载到内存中之后,就开始执行了。一旦内核启动运行,对硬件的检测就会决定需要对哪些设备驱动程序进行初始化。从这里开始,内核就能够挂装根文件系统(这个过程类似于Windows识别并存取C盘的过程)。内核挂装了根文件系统,并已初始化所有的设备驱动程序和数据结构等之后,就通过启动一个叫init的用户级程序,完成引导进程。
二、运行级别(run level)
Init进程是系统启动之后的第一个用户进程,所以它的pid(进程编号)始终为1。 init进程上来首先做的事是去读取/etc/目录下inittab文件中initdefault id值 ,这个值称为运行级别(run-level)。它决定了系统启动之后运行于什么级别。运行级别决定了系统启动的绝大部分行为和目的。这个级别从0到6 ,具有不同的功能。不同的运行级定义如下:
# 0 - 停机(千万别把initdefault设置为0,否则系统永远无法启动)
# 1 - 单用户模式
# 2 - 多用户,没有 NFS
# 3 - 完全多用户模式(标准的运行级)
# 4 – 系统保留的
# 5 - X11 (x window)
# 6 - 重新启动 (千万不要把initdefault 设置为6,否则将一直在重启 )
三、/etc/rc.d/与/etc/rc.d/init.d的关系
写到这里,应该差不多要进入init.d了,可是我觉得单写/etc/rc.d/init.d的话不一定能说得清楚明白,就拿它跟/etc/rc.d这个它上一级的目录一起来讨论,可能比较合适一些,因为他们之间有着千丝万缕的关系。
在这里先解释一下init.d里面放的都是什么东西。这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本。系统在安装时装了好多rpm包,这里面就有很多对应的脚本。执行这些脚本可以用来启动,停止,重启这些服务。
前面说到,/etc/rc.d/init.d这个目录下的脚本就类似与windows中的注册表,在系统启动的时候执行。程序运行到这里(init进程读取了运行级别),相信从命名的角度大家也能猜到该运行/etc/rc.d/init.d里面的脚本了,不然它为什么也叫init(.d)呢是吧。没错,是该运行init.d里的脚本了,但是并不是直接运行,而是有选择的因为系统并不需要启动所有的服务。
那么,系统是如何选择哪些需要启动哪些不要呢?这时刚才说的运行级别就起作用了。
在决定了系统启动的run level之后,/etc/rc.d/rc这个脚本先执行。在RH9和FC7的源码中它都是一上来就check_runlevel()(虽然实现的代码不一样,也大同小异),知道了运行级别之后,对于每一个运行级别,在rc.d下都有一个子目录分别是rc0.d,rc1.d ….. rc6.d。每个目录下都是到init.d目录的一部分脚本一些链接。每个级别要执行哪些服务就在相对应的目录下,比如级别5要启动的服务就都放在rc5.d下,但是放在这个rc5.d下的都是一些链接文件,链接到init.d中相对应的文件,真正干活的init.d里的脚本。
到这里,估计大家可能都比较清楚了,我开始也以为是这样的。可是后来我仔细看过和比较这些链接文件和init.d里真正被执行的脚本的文件名之后,一直有几个问题没弄明白。借着写这个文章的机会,我做了一些功课,总算是大概解开了那些疑惑。
1、这些链接文件前面为什么会带一个Kxx或者Sxx呢?
是这样的,带K的表示停止(Kill)一个服务,S表示开启(Start)的意思
2、K和S后面带的数字呢?干什么用的
这个我开始的时候还以为是排列起来好看或者数数用呢(是不是很幼稚?)。后来发现不是的。它的作用是用来排序,就是决定这些脚本执行的顺序,数值小的先执行,数值大的后执行。很多时候这些执行顺序是很重要的,比如要启动Apache服务,就必须先配置网络接口,不然一个没有IP的机子来启动http服务那岂不是很搞笑。
3、无意中我发现同一个服务带S的和带K的链接到init.d之后是同一个脚本。我就纳闷了,为什么会是执行同一个脚本呢?
这个时候真是S和K的妙用了,原来S和K并不止是用来看起来分的清楚而已。S给和K还分别给init.d下面的脚本传递了start和stop的参数。哦,是这样的(焕然大悟的样子,呵呵)!这时我才想起来原来曾经无数用过的/etc/rc.d/init.d/network restart命令。原来传S时相当于执行了/etc/rc.d/init.d/xxx start这条命令,当然K就相当于/etc/rc.d/init.d/xxx stop了。
我只是想起了那本《龙族3》
我想要新手机
我想要新电脑
我想要摩托车
我想要一只狗
我想要一把吉他
我想要汽车
我想要游戏
我想要酒
我想要天上的云
1. DNS Spoofing:攻击者通过伪造DNS响应,将用户重定向到恶意网站或者欺骗用户输入敏感信息。
2. DNS Cache Poisoning:攻击者通过向DNS服务器发送虚假的DNS响应,将错误的IP地址缓存到DNS服务器中,导致用户无法访问正确的网站。
3. DNS Amplification:攻击者利用DNS服务器的放大效应,向目标服务器发送大量的DNS请求,导致目标服务器瘫痪。
4. DNS Flood:攻击者通过向DNS服务器发送大量的DNS请求,消耗服务器资源,导致服务器瘫痪。
5. DNS Tunneling:攻击者通过DNS协议传输非法数据,绕过网络安全设备,实现数据窃取或者远程控制。
辨析:
DNS Spoofing 和 DNS Cache Poisoning 的区别
攻击对象:
DNS Spoofing:主要针对用户或客户端,通过伪造DNS响应直接影响用户的DNS查询结果。
DNS Cache Poisoning:主要针对DNS服务器的缓存,通过污染缓存来影响多个用户的查询结果。
实现方式:
DNS Spoofing:通常涉及实时拦截和篡改DNS请求或响应。
DNS Cache Poisoning:通过发送虚假的DNS响应使DNS服务器缓存错误的IP地址。
DNS Amplification和DNS Flood是两种不同的拒绝服务(DoS)攻击方式,它们都涉及向DNS服务器发送大量请求,最终导致目标服务器瘫痪。
DNS Amplification(DNS放大攻击)
攻击方式:攻击者利用开放的DNS解析器,将小的DNS查询请求伪装成受害者的IP地址发送到这些解析器。解析器处理请求并发送大量的响应数据到受害者的IP地址。
放大效应:通过发送较小的请求(例如几十字节),攻击者可以触发较大的响应(例如几千字节)。这样,攻击者能够利用放大效应,发送少量流量却对目标服务器造成巨大的流量冲击。
DNS Flood(DNS泛洪攻击)
攻击方式:攻击者直接向目标DNS服务器发送大量的DNS查询请求,试图通过消耗服务器的资源使其无法正常响应合法请求。
请求数量:DNS Flood攻击依赖于发送大量的请求,而这些请求通常不涉及放大效应。攻击者需要拥有较大的带宽资源以产生足够多的请求来压垮目标服务器。
选项
-i 直接写入
-e 拼接指令
-n 只打印经过编辑的行
-u 禁用输出缓冲,即实时输出结果
替换标记
/g global全局替换
/p print将经过替换的行打印输出
## 需要注意的是,如果只使用 /p 标记而不使用 -n 选项,sed 命令将会打印所有经过编辑的行,包括未匹配到的行。
## 而只使用 -n 选项而不使用 /p 标记,则不会打印任何行。因此,两者结合使用时可以过滤并打印出符合条件的行。
/i 忽略大小写替换标记
地址范围选项
n:行号选项,表示只对指定行号的行进行操作。例如,5s/pattern/replacement/ 表示只对第 5 行进行替换操作。
start:起始行选项,表示从指定行开始应用编辑命令。例如,/pattern/s/replacement/ 表示从匹配到 pattern 的行开始进行替换操作。
start,end:起始行和结束行选项,表示在指定的行范围内应用编辑命令。例如,/start/,/end/s/pattern/replacement/ 表示在匹配到 start 行和 end 行之间进行替换操作。
$:最后一行选项,表示对最后一行进行操作。例如,$s/pattern/replacement/ 表示对最后一行进行替换操作。
!:否定行选项,表示对选定行之外的行应用编辑命令。例如,1,3!s/pattern/replacement/ 表示对除了第 1 行到第 3 行之外的所有行进行替换操作。