在CentOS服务器管理工作中,用户账户是身份认证的入口,也是权限隔离的基础。如果账户管理混乱或密码策略过于宽松,攻击者很容易通过暴力破解或弱口令入侵系统。本文将从命令实操出发,带你逐步掌握用户创建、密码设置以及密码安全策略的配置方法,保证服务器在多个使用场景下稳定运行。

创建用户前,先要明确需求:用户属于哪个组?是否需要登录Shell?家目录放在哪里?这些都可以通过useradd命令的选项灵活控制。下面我们逐一说明。
一、使用useradd命令创建用户账户
useradd是CentOS中创建用户的核心命令,它提供了一组丰富的选项来定义用户的属性。常用选项包括-u指定UID,-g指定主用户组,-G追加附加组,-d指定家目录路径,-s指定登录Shell,-m则会在指定位置自动创建家目录。例如,要创建名为zhangsan的用户,指定家目录为/home/zhangsan,登录Shell为/bin/bash,并设置UID为1500,可以执行以下命令:
useradd -m -u 1500 -d /home/zhangsan -s /bin/bash zhangsan
命令执行后可以使用id zhangsan查看用户信息,输出中会显示UID、主组ID以及所属的附加组。如果创建时没有指定-g,系统默认会创建一个以用户名为名称的同名组,并将该组作为用户的主组。这种模式在单用户服务器上比较方便,但在多部门共享服务器时,建议提前规划好用户组,通过groupadd建立业务组,再使用-g将用户划入对应组,这样便于权限统一管理。
另外,useradd创建用户时,系统会把/etc/skel目录下的隐藏文件(如.bashrc、.bash_profile)复制到用户家目录,作为初始配置文件。如果希望所有新用户默认拥有某个特定配置,可以直接修改/etc/skel下的文件内容。默认的用户创建参数定义在/etc/default/useradd文件中,例如设置默认家目录基点、默认Shell和过期时间,管理员可以根据企业规范修改该文件,让后续创建的用户自动继承统一的标准。
二、设置用户密码与密码过期管理
创建用户后,账户本身还处于锁定状态,必须设置密码才能正常登录。最简单的做法是使用passwd命令,交互式填入并确认密码:
passwd zhangsan
系统会检查密码的强度,如果过于简单会给出警告,但不会阻止设置,除非PAM配置强制要求。对于批量创建用户,例如从文件中导入一批账号,可以使用chpasswd命令直接读取“用户名:密码”格式的输入,适合配合脚本实现自动化部署:
echo "zhangsan:NewPass2024" | chpasswd
除了设置密码,密码的过期策略同样重要。chage命令可以管理密码的使用期限,比如设置密码有效期为90天,到期前7天提醒用户修改,可以使用如下参数:
chage -M 90 -W 7 zhangsan
其中-M指定密码最大有效天数,-W指定到期前警告天数。如果希望用户首次登录时必须修改密码,还可以通过chage -d 0将最后修改日期设置为0,这样用户在第一次登录时就会被强制要求更换初始密码。这是一道非常实用的安全防线,尤其适合分配给临时人员的临时账号。
三、全局密码策略的配置方法
单靠用户自觉设置强密码并不可靠,管理员需要在系统层面对密码策略进行统一约束。最简单的入口是修改/etc/login.defs文件,其中的参数直接对通过useradd创建的用户生效。下面是一段典型的配置:
PASS_MAX_DAYS 90 PASS_MIN_DAYS 0 PASS_WARN_AGE 7 PASS_MIN_LEN 8
以上设置表示密码最长使用90天、最短使用0天(即可以随时修改)、到期前7天警告、最小长度为8个字符。这些参数只影响后续创建的新用户,对于已有的用户并不会即时生效,需要手动执行chage调整,或者等待修改密码时系统重新读取规则。
不过,/etc/login.defs只能控制长度,无法要求密码必须包含大小写字母、数字和特殊字符。要强制密码复杂度,需要借助PAM模块。在CentOS 7及以上版本,通常通过/etc/pam.d/system-auth或/etc/pam.d/password-auth中的pam_pwquality.so模块实现。例如添加这样一行:
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 minlen=12 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1
其中minlen=12要求密码最少12个字符,dcredit=-1表示至少包含一个数字,ucredit=-1要求至少一个大写字母,lcredit=-1要求至少一个小写字母,ocredit=-1要求至少一个特殊符号。负值代表最低数量限制,正值则相反。修改后,再次设置用户密码时,系统就会严格校验这些规则,不符合要求的密码会被拒绝。
四、用户账户的锁定、删除与安全加固
当用户离开公司或账户疑似被入侵时,需要快速锁定或删除账户。锁定账户可以使用usermod -L,解锁则用usermod -U。锁定后,用户无法登录,但家目录和文件数据仍然保留,方便管理员后续审计。如果确定账户不再需要,可以使用userdel -r连同家目录和邮件池一起删除,避免残留文件。
usermod -L zhangsan usermod -U zhangsan userdel -r zhangsan
安全加固方面,首先要禁用root账户的远程SSH登录,通过修改/etc/ssh/sshd_config中的PermitRootLogin no,让管理员使用普通用户登录后再通过sudo提升权限。其次,为所有需要提权的用户配置sudo规则时,要遵循最小权限原则,例如只在/etc/sudoers中给指定用户赋予执行特定命令的权限。此外,定期查看/etc/passwd和/etc/shadow文件,关注是否存在空口令账户或突然新增的UID为0的用户,这些都是入侵检测的基础手段。
掌握了用户创建和密码策略配置,并不意味着可以一劳永逸。系统环境会变化,员工会流动,攻击手段也在持续升级。只有将账户管理流程标准化,并配合定期审查和自动化巡检,才能让CentOS服务器的用户体系既高效又安全。希望本文的实践方法能帮助你构建一套可靠的管理方案。