5154

Good Luck To You!

centos配置shadow

在CentOS系统中配置Shadow密码套件是提升系统安全性的关键步骤,Shadow套件通过将密码信息从/etc/passwd文件中分离出来,存储在/etc/shadow文件中,有效防止了密码被未授权访问,本文将详细介绍如何在CentOS系统中正确配置Shadow密码套件,包括安装、配置、权限管理及安全加固等环节。

centos配置shadow

安装Shadow套件

在CentOS系统中,Shadow套件通常作为基础软件包的一部分已预安装,若未安装,可通过yumdnf包管理器进行安装,执行以下命令检查是否已安装Shadow套件:

rpm -qa | grep shadow

若输出结果包含shadowshadow-utils等包,则说明已安装,若未安装,可通过以下命令安装:

sudo yum install shadow-utils

安装完成后,系统会自动创建/etc/shadow文件,并设置适当的文件权限,默认情况下,/etc/shadow文件仅允许root用户读取,确保了密码信息的安全性。

理解Shadow文件结构

/etc/shadow文件是系统安全的核心,其每行记录对应一个用户,字段之间用冒号分隔,典型记录如下:

username:password:lastchg:min:max:warn:inactive:expire:flag

各字段含义如下:

  • username:用户名。
  • password:加密后的密码,若为或,表示密码被锁定或未设置。
  • lastchg:上次修改密码的天数,从1970年1月1日开始计算。
  • min:密码最小使用天数,防止频繁修改密码。
  • max:密码最大使用天数,强制用户定期更换密码。
  • warn:密码过期前警告天数。
  • inactive:密码过期后账户被锁定前的宽限天数。
  • expire:账户过期天数,从1970年1月1日开始计算,过期后账户无法登录。
  • flag:保留字段,通常为空。

配置密码策略

通过修改/etc/login.defs文件,可以全局设置密码策略,该文件定义了新建用户时的默认密码规则,以下是常用配置项:

  • PASS_MAX_DAYS:密码最大使用天数,默认为9999,建议设置为90-180天。
  • PASS_MIN_DAYS:密码最小使用天数,默认为0,建议设置为7天。
  • PASS_WARN_AGE:密码过期前警告天数,默认为7天。
  • ENCRYPT_METHOD:密码加密方法,推荐使用SHA512

修改/etc/login.defs文件,设置密码每90天过期,且提前7天警告:

PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 7
ENCRYPT_METHOD SHA512

修改后,新建用户将遵循这些策略,对于已存在的用户,可通过chage命令单独调整密码策略。

centos配置shadow

使用chage命令管理密码策略

chage命令用于修改用户密码过期信息,以下是常用选项:

  • -M max:设置密码最大使用天数。
  • -m min:设置密码最小使用天数。
  • -W warn:设置密码过期前警告天数。
  • -E expire:设置账户过期日期。
  • -I inactive:设置密码过期后宽限天数。

为用户example设置密码每60天过期,提前10天警告,且账户在2026-12-31过期:

sudo chage -M 60 -W 10 -E 2026-12-31 example

查看用户当前的密码策略信息:

sudo chage -l example

锁定与解锁用户账户

为增强安全性,可暂时锁定不活跃的用户账户,使用passwd命令的-l选项锁定账户:

sudo passwd -l example

锁定后,用户无法通过密码登录,但可能仍可通过其他认证方式(如SSH密钥)登录,解锁账户使用-u选项:

sudo passwd -u example

若需永久禁用账户,可将/etc/shadow文件中对应字段的密码改为或。

设置密码复杂度要求

通过pam_pwquality模块,可强制用户设置复杂密码,编辑/etc/security/pwquality.conf文件,添加以下配置:

minlen = 8
minclass = 3
dcredit = -1
ucredit = -1
ocredit = -1
lcredit = -1

配置项说明:

centos配置shadow

  • minlen:密码最小长度。
  • minclass:必须包含的字符类别(大写、小写、数字、特殊字符)数量。
  • dcredit:至少包含的数字数量(负值表示至少)。
  • ucredit:至少包含的大写字母数量。
  • ocredit:至少包含的特殊字符数量。
  • lcredit:至少包含的小写字母数量。

配置后,用户在修改密码时需满足上述要求,否则会被系统拒绝。

定期审计与监控

定期检查/etc/shadow文件,确保密码策略被正确执行,使用awk命令查找即将过期的密码:

sudo awk -F: '$5 < 30 {print $1 "密码将在" $5 "天后过期"}' /etc/shadow

可通过failloglastlog命令监控失败登录尝试,及时发现异常行为:

sudo faillog
sudo lastlog

相关问答FAQs

Q1: 如何查看某个用户的密码过期时间?
A1: 使用chage命令结合-l选项即可查看。sudo chage -l username会显示该用户的密码上次修改时间、过期时间、警告时间等信息。

Q2: 如果忘记root密码,如何重置?
A2: 重置root密码需通过单用户模式或恢复模式实现,具体步骤如下:

  1. 重启系统,在GRUB引导界面按e键编辑启动参数。
  2. 找到以linuxlinux16开头的行,在行末添加rd.break
  3. Ctrl+X启动系统,进入紧急模式。
  4. 重新挂载/sysroot为可写模式:mount -o remount,rw /sysroot
  5. 切换到/sysroot环境:chroot /sysroot
  6. 使用passwd命令重置root密码,完成后执行touch /.autorelabel以恢复SELinux上下文。
  7. 输入exit两次,系统将重启并应用新密码。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2026年1月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.