以下是一个基本的Linux账号安全检查脚本的示例。
#!/bin/bash
# 检查root账号是否启用
root_status=$(grep -E -v '^#' /etc/passwd | awk -F: '($3 == 0) {print}')
if [ -z "$root_status" ]; then
? ? echo "警告: root账号未启用!"
else
? ? echo "root账号已启用"
fi
# 检查是否存在空密码的账号
empty_passwords=$(awk -F: '($2==""){print}' /etc/shadow)
if [ -z "$empty_passwords" ]; then
? ? echo "所有账号的密码均已设置"
else
? ? echo "警告: 存在空密码的账号:"
? ? echo "$empty_passwords"
fi
# 检查是否存在非活动账号
inactive_accounts=$(useradd -D | grep INACTIVE)
if [ -z "$inactive_accounts" ]; then
? ? echo "所有账号均为活动状态"
else
? ? echo "警告: 存在非活动账号:"
? ? echo "$inactive_accounts"
fi
# 检查是否存在UID为0以外的账号
non_root_accounts=$(awk -F: '($3 != 0) {print}' /etc/passwd)
if [ -z "$non_root_accounts" ]; then
? ? echo "所有账号的UID都是0"
else
? ? echo "警告: 存在UID为0以外的账号:"
? ? echo "$non_root_accounts"
fi
# 检查是否存在重复的UID
duplicate_uids=$(awk -F: '{print $3}' /etc/passwd | sort | uniq -d)
if [ -z "$duplicate_uids" ]; then
? ? echo "没有重复的UID"
else
? ? echo "警告: 存在重复的UID:"
? ? echo "$duplicate_uids"
fi
将上述脚本保存为shell脚本文件(例如account_security_check.sh),然后在Linux系统中运行此脚本即可执行账号基线检查。
在Linux系统中,建议禁用以下默认账号:
1. root:这是Linux系统的超级管理员账号,禁用它可以防止黑客使用该账号登录系统。
2. guest:该账号通常用于临时用户访问系统,禁用它可以防止未经授权的用户登录。
3. bin:该账号是用于系统二进制文件的账号,禁用它可以防止非法用户使用此账号进行恶意操作。
4. daemon:该账号是用于守护进程的账号,禁用它可以防止非法用户使用此账号运行恶意服务。
5. adm:该账号是用于系统日志管理的账号,禁用它可以防止非法用户访问和篡改系统日志。
6. lp:该账号是打印系统的账号,禁用它可以防止非法用户通过此账号进行未授权的打印操作。
7. sync:该账号用于同步磁盘缓冲区的账号,禁用它可以防止非法用户使用此账号篡改磁盘数据。
8. shutdown:该账号用于系统关机的账号,禁用它可以防止非法用户通过此账号进行非法关机操作。
9. halt:该账号用于系统停止的账号,禁用它可以防止非法用户通过此账号进行非法停止操作。
10. mail:该账号用于邮件系统的账号,禁用它可以防止非法用户通过此账号访问和篡改邮件数据。
除了上述默认账号,您还可以根据具体的系统配置和需求禁用其他默认账号。请注意,在禁用这些账号之前,确保您已经设置了合适的管理员账号和密码,并且不再需要这些默认账号。
以下是一个禁用Linux默认账号的基线检查脚本示例。
#!/bin/bash
# 禁用root账号
passwd -l root
# 禁用guest账号
passwd -l guest
# 禁用其他默认账号
passwd -l bin
passwd -l daemon
passwd -l adm
passwd -l lp
passwd -l sync
passwd -l shutdown
passwd -l halt
passwd -l mail
passwd -l news
passwd -l uucp
passwd -l operator
passwd -l games
passwd -l ftp
passwd -l nobody
passwd -l systemd-network
passwd -l systemd-resolve
passwd -l systemd-timesync
passwd -l systemd-coredump
passwd -l dbus
passwd -l tcpdump
passwd -l avahi-autoipd
passwd -l usbmuxd
passwd -l rtkit
passwd -l speech-dispatcher
passwd -l whoopsie
passwd -l kernoops
passwd -l saned
passwd -l pulse
passwd -l avahi
passwd -l colord
passwd -l hplip
passwd -l geoclue
passwd -l gnome-initial-setup
passwd -l gdm
echo "默认账号已禁用"
将上述脚本保存为shell脚本文件(例如disable_default_accounts.sh),然后在Linux系统中以root用户身份运行此脚本即可禁用默认账号。请确保在运行此脚本之前,您已经设置了合适的管理员账号和密码,并且不再需要这些默认账号。