步骤一:进入 Python 环境
# python3
步骤二:导入 UUID 模块
>>> import uuid
步骤三:生成 UUID
>>> uuid.uuid4()
步骤四:生成 UUID 并以十六进制进行显示
>>> uuid.uuid4().get_hex()
# python3
>>> import uuid
>>> uuid.uuid4()
>>> uuid.uuid4().get_hex()
# ifconfig | grep HW
# arp -n
(步骤略)
(步骤略)
(步骤略)
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 根 “/” 目录 下的目录)
(步骤略)
(
补充:
1) 物理分区可以使用 lsblk 命令、fdisk -l 或 cat /proc/partitions 命令辅助确定
2) 逻辑分区还可以可以使用 pvs 命令、lvs 命令或 lvdisplay 命令辅助确定
)
bash-4.3# grub2-install <disk which GRUB2 in>
bash-4.3# grub2-mkconfig -o /boot/grub2/grub.cfg
bash-4.3# exit
bash-4.3# reboot
如果以上步骤都不起作用,且 /boot 是单独分区的话,则可能是 boot 分区的文件系统损坏,可以尝试以下补充:
1) 重复本文步骤五和之前步骤的内容
2) 将 /boot 目录里的内容全部拷贝出来
3) 取消挂载 /boot 目录的分区
4) 将挂载 /boot 目录的分区重新格式化成 ext4 格式
5) 格式化后分区的 UUID 会改变,所以需要更新 /etc/fstab 文件中挂载 /boot 目录分区的 UUID
6) 将格式化后的分区重新挂载 /boot 目录
7) 将刚刚从 /boot 目录拷贝出来的内容拷贝回 /boot 目录
8) 重复此文的步骤六
(注意:不建议使用 Btrfs 文件系统给 /boot 目录分区)
https://www.suse.com/support/kb/doc/?id=000018770
KEY 私钥、CRT 公钥、PFX 公私钥、CSR 证书签名请求文件
KEY 私钥,放置在服务器上,属于机密文件,不能被其他人得到。可以是 PEM 或 DER 两种编码方式中的一种,这两种编码方式也可以相互转换。Linux 上通常使用 PEM,而 Windows 上通常使用 DER
CRT 公钥,放置在服务器上,可以被其它人得到。可以是 PEM 或 DER 两种编码方式中的一种,这两种编码方式也可以相互转换。Linux 上通常使用 PEM,而 Windows 上通常使用 DER
PFX 同时包含公钥和私钥,放置在服务器上。在 Linux 上通常会分别使用 KEY 和 CRT 两个文件,而 Windows 会使用同时包含公钥和私钥的 PFX 文件
CSR 全名 Certificate Signing Request,即证书签名请求文件。用于提供给证书供应商申请证书
# openssl req -nodes -newkey rsa:4096 -sha512 -keyout eternalcenter.com.key -out eternalcenter.com.csr
(补充:这里以同时生成长度 4096 位,加密格式为 512 的 KEY 私钥 eternalcenter.com.key 和 CSR 证书签名请求文件 eternalcenter.com.csr 为例)
(注意:后面还有国家、州或省、城市、组织、部门、域名和邮箱地址的信息需要输入此命令后手动填写)
# openssl req -nodes -newkey rsa:4096 -sha512 -out eternalcenter.com.csr -keyout eternalcenter.com.key -subj "/C=CN/ST=Sichuan/L=Chengdu/O=Eternal Center/OU=Mingyu Zhu/CN=eternalcenter.com/emailAddress=contact@mingyuzhu.com"
(
补充:这里以同时生成
1) 长度为 4096 位
2) 加密格式为 512
3) 国家为 CN
4) 州或省为 Sichuan
5) 城市为 Chengdu
6) 组织为 Eternal Center
7) 部门为 Mingyu Zhu
8) 域名为 eternalcenter.com
9) 邮箱地址为 contact@mingyuzhu.com
的 KEY 私钥 eternalcenter.com.key 和 CSR 证书签名请求文件 eternalcenter.com.csr 为例
)
# openssl req -nodes -newkey rsa:4096 -sha512 -keyout eternalcenter.com.key
(补充:这里以同时生成长度 4096 位,加密格式为 512 的 KEY 私钥 eternalcenter.com.key 和 CSR 证书签名请求文件 eternalcenter.com.csr 为例)
(注意:后面还有国家、州或省、城市、组织、部门、域名和邮箱地址的信息需要输入此命令后手动填写)
# openssl req -nodes -newkey rsa:4096 -sha512 -keyout eternalcenter.com.key -subj "/C=CN/ST=Sichuan/L=Chengdu/O=Eternal Center/OU=Mingyu Zhu/CN=eternalcenter.com/emailAddress=contact@mingyuzhu.com"
(
补充:这里以同时生成
1) 长度为 4096 位
2) 加密格式为 512
3) 国家为 CN
4) 州或省为 Sichuan
5) 城市为 Chengdu
6) 组织为 Eternal Center
7) 部门为 Mingyu Zhu
8) 域名为 eternalcenter.com
9) 邮箱地址为 contact@mingyuzhu.com
的 KEY 私钥 eternalcenter.com.key 和 CSR 证书签名请求文件 eternalcenter.com.csr 为例
)
# openssl rsa -in eternalcenter.com.key -out eternalcenter.com.crt -pubout -outform PEM
(补充:这里以使用 KEY 私钥 eternalcenter.com.key 生成 CRT 公钥 eternalcenter.com.crt 为例)
# cat eternalcenter.com.key
(补充:这里以查看 KEY 私钥 eternalcenter.com.key 为例)
# cat eternalcenter.com.crt
(补充:这里以查看 CRT 公钥 eternalcenter.com.crt 为例)
# openssl req -in eternalcenter.com.csr -noout -text
(补充:这里以查看 CSR 证书签名请求文件 eternalcenter.com.csr 为例)
CentOS & RHEL 设置只有属于某个组的用户才能使用 su 命令
# sed -i '/auth.*include.*common-auth/a auth required pam_wheel.so use_uid' /etc/pam.d/su
(
补充:
1) 这里以设置只有 wheel 才能使用 su 命令为例
2) 如果要指定另 1 个特定的组例如 canusesu 可以使用 su 命令,则命令为:
# sed -i '/auth.*include.*common-auth/a auth required pam_wheel.so use_uid group=canusesu' /etc/pam.d/su
)
openSUSE & SUSE 设置只有属于某个组的用户才能使用 su 命令
# sed -i '/auth.*include.*common-auth/a auth required pam_wheel.so use_uid' /etc/pam.d/su
# sed -i '/auth.*include.*common-auth/a auth required pam_wheel.so use_uid' /etc/pam.d/su-l
(
补充:
1) 这里以设置只能 wheel 才能使用 su 命令为例
2) 如果要指定另 1 个特定的组例如 canusesu 可以使用 su 命令,则命令为:
# sed -i '/auth.*include.*common-auth/a auth required pam_wheel.so use_uid group=canusesu' /etc/pam.d/su
# sed -i '/auth.*include.*common-auth/a auth required pam_wheel.so use_uid group=canusesu' /etc/pam.d/su-l
)
# usermod -a -G wheel eternalcenter
(补充:这里以给用户 eternalcenter 添加附属组的方式将用户 eternalcenter 添加到 wheel 附属组为例)
# cat /etc/group | grep wheel
wheel:x:10:eternalcenter,root
(补充:这里以显示 eternalcenter 用户和 root 用户以添加附属组的方式添加到 wheel 组里为例)
(步骤略)
(补充:就算密码正确也会显示 su: Authentication failure)
# su - eternalcenter
$ su - root