为给我勇气之人而勇敢……
为给我指引之人而智慧……
为给我希望之人而博爱……
[步骤] Linux su 命令白名单的设置 (通过指定的组实现)
步骤一:设置只有属于某个组的用户才能使用 su 命令
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
)
步骤二:将需要使用 su 命令的用户添加到可以使用 su 命令的组里
# usermod -a -G wheel eternalcenter
(补充:这里以给用户 eternalcenter 添加附属组的方式将用户 eternalcenter 添加到 wheel 附属组为例)
步骤三:确保 /etc/group 配置文件中使用 su 命令的用户已添加到可以使用 su 命令的组里
# cat /etc/group | grep wheel
wheel:x:10:eternalcenter,root
(补充:这里以显示 eternalcenter 用户和 root 用户以添加附属组的方式添加到 wheel 组里为例)
步骤四:验证 su 命令白名单
4.1 以其他普通用户的身份使用 su 命令切换到其他用户
(步骤略)
(补充:就算密码正确也会显示 su: Authentication failure)
4.2 以在可以使用 su 命令的组里用户的身份使用 su 命令切换到其他用户
# su - eternalcenter
$ su - root
[步骤] GRUB2 Bootloader 密码的设置 (CentOS Linux & RHEL 版)
步骤一:生成密码的 GRUB2 密码的 SHA512 值
# grub2-mkpasswd-pbkdf2
Enter password:
Reenter password:
PBKDF2 hash of your password is
grub.pbkdf2.sha512.10000.
B857B79D02FF55CA3A69B8485C1A4A427424630C804CC8A89134520A34E056D7882A778F6BC8AD856CB95DF8B99BE25F9FEAD899D826BB3915FB20BAD682D10A.4A1CF49B7F815A0578031CCA2CE98C66BDFBEAB0AE2721531BB54AFC6CFFA990FBD9062F41C006376C283B717FEC1BD9BB1AFB882AF91B5F4A812459D7974D1F
(补充:这里以生成 eternalcenter 的 GRUB2 SHA512 值为例)
(注意:grub.pbkdf2.sha512.10000……. 后面的一长串字母和数字其实是 1 行,这里因为是显示问题所以看上去是多行)
步骤二:创建 GRUB2 密码文件
如果是 EFI 的 CentOS & RHEL:
# echo "GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.B857B79D02FF55CA3A69B8485C1A4A427424630C804CC8A89134520A34E056D7882A778F6BC8AD856CB95DF8B99BE25F9FEAD899D826BB3915FB20BAD682D10A.4A1CF49B7F815A0578031CCA2CE98C66BDFBEAB0AE2721531BB54AFC6CFFA990FBD9062F41C006376C283B717FEC1BD9BB1AFB882AF91B5F4A812459D7974D1F" > /boot/efi/EFI/redhat/user.cfg
(
补充:
1) 登录用户 root
2) 登录密码 eternalcenter
3) 这里的 grub.pbkdf2.sha512.10000.B857B…… 是由步骤一生成的
)
(注意:这里其实只有 1 行,因为是显示问题所以看上去是多行)
如果是 BIOS 的 CentOS & RHEL:
# echo "GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.B857B79D02FF55CA3A69B8485C1A4A427424630C804CC8A89134520A34E056D7882A778F6BC8AD856CB95DF8B99BE25F9FEAD899D826BB3915FB20BAD682D10A.4A1CF49B7F815A0578031CCA2CE98C66BDFBEAB0AE2721531BB54AFC6CFFA990FBD9062F41C006376C283B717FEC1BD9BB1AFB882AF91B5F4A812459D7974D1F" > /boot/grub2/user.cfg
(
补充:
1) 登录用户 root
2) 登录密码 eternalcenter
3) 这里的 grub.pbkdf2.sha512.10000.B857B…… 是由步骤一生成的
)
(注意:这里其实只有 1 行,因为是显示问题所以看上去是多行)
步骤三:测试 GRUB2 Bootloader 密码
3.1 重启系统
(步骤略)
3.2 进入到 GRUB2 Bootloader 模式
当启动系统时按下 “E” 键
补充:CentOS & RHEL 更改 GRUB2 的登录用户
如果是 EFI:
# echo <user> > /boot/efi/EFI/redhat/user.cfg
如果是 BIOS:
# echo <user> > /boot/grub2/user.cfg
[工具] Shell 自动化部署 GRUB2 Bootloader 密码 (CentOS Linux & RHEL 版)
介绍
基本信息
作者:朱明宇
名称:自动化部署 GRUB2 Bootloader 密码(CentOS & RHEL 版)
作用:自动化部署 GRUB2 Bootloader 密码(CentOS & RHEL 版)
使用方法
1. 给此脚本添加执行权限
2. 执行此脚本
3. 当启动系统时,左下角出现以下内容时按下 “E”:
注意
1. 登录的账号是 root
2. 登录的密码是 eternalcenter
脚本
#!/bin/bash
if [ -d /sys/firmware/efi ]; then
echo "GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.B857B79D02FF55CA3A69B8485C1A4A427424630C804CC8A89134520A34E056D7882A778F6BC8AD856CB95DF8B99BE25F9FEAD899D826BB3915FB20BAD682D10A.4A1CF49B7F815A0578031CCA2CE98C66BDFBEAB0AE2721531BB54AFC6CFFA990FBD9062F41C006376C283B717FEC1BD9BB1AFB882AF91B5F4A812459D7974D1F" > /boot/efi/EFI/redhat/user.cfg
else
echo "GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.B857B79D02FF55CA3A69B8485C1A4A427424630C804CC8A89134520A34E056D7882A778F6BC8AD856CB95DF8B99BE25F9FEAD899D826BB3915FB20BAD682D10A.4A1CF49B7F815A0578031CCA2CE98C66BDFBEAB0AE2721531BB54AFC6CFFA990FBD9062F41C006376C283B717FEC1BD9BB1AFB882AF91B5F4A812459D7974D1F" > /boot/grub2/user.cfg
fi
[内容] Linux BIOS 和 EFI 的区分 (系统安装时启动分区种类的显示)
内容一:判断 Linux 是 BIOS 还是 EFI 的方法
# ls -ld /sys/firmware/efi
(补充:如果 /sys/firmware/efi 目录存在,则代表系统是 EFI,否则系统是 BIOS)
内容二:判断 Linux 是 BIOS 还是 EFI 的脚本
# [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS