服务器测评网
我们一直在努力

linux设置账号密码

Linux系统中,账号与密码是系统安全的第一道防线,合理设置和管理账号密码能有效防止未授权访问、数据泄露等安全风险,本文将从用户创建、密码配置、策略加固、权限管理及安全实践等方面,详细讲解Linux账号密码的设置方法与最佳实践。

linux设置账号密码

Linux用户账号的创建与管理

在Linux中,用户账号是系统资源访问的基本单元,创建用户需通过专用命令实现,常用命令为useradd(底层命令)和adduser(交互式脚本,以Ubuntu为例),两者功能一致但参数形式略有差异。

创建用户时,需指定用户名、家目录、登录shell等关键信息,使用useradd -m -s /bin/bash newuser命令可创建名为newuser的用户,其中-m表示自动创建家目录(默认位于/home/newuser),-s指定登录shell为/bin/bash(若不指定,默认可能使用/sbin/nologin,限制用户登录)。

若需修改用户信息(如家目录、用户描述等),可使用usermod命令,例如usermod -d /new/home -l newname oldname可将用户oldname的家目录改为/new/home并重命名为newname,删除用户时,建议使用userdel -r username-r参数会同时删除用户家目录及邮箱文件,避免残留数据。

密码设置与修改的核心操作

密码是账号安全的直接保障,Linux中通过passwd命令管理密码,普通用户只能修改自己的密码,root用户可修改任意用户密码。

交互式设置密码:执行passwd username(root用户可省略username),系统会提示输入两次密码(输入时字符不显示),确认后密码生效,密码需满足系统默认策略(如长度、复杂度),否则会被拒绝。

非交互式设置密码:适用于自动化运维场景,可通过echo "newpassword" | passwd --stdin username命令实现(需root权限),但需注意echo命令可能被历史命令记录,存在密码泄露风险,建议使用printf替代,如printf "newpassword\n" | passwd --stdin username

linux设置账号密码

密码有效期管理:使用chage命令可配置密码过期策略。chage -M 90 username设置密码90天后过期,-W 7表示过期前7天开始警告,-I 3表示密码过期后3天锁定账号,通过chage -l username可查看当前用户的密码策略详情。

密码策略加固:提升系统安全性

默认情况下,Linux对密码复杂度的要求较低,需通过配置文件强化策略,防范弱密码攻击。

修改全局密码策略
核心配置文件为/etc/login.defs/etc/pam.d/passwd,在/etc/login.defs中,可设置PASS_MIN_LEN(密码最小长度,默认通常为5,建议至少8位)、PASS_MAX_DAYS(密码最大有效期,默认99999,建议设置为90-180天)。

启用PAM密码模块
/etc/pam.d/passwd文件控制密码验证逻辑,通过引入pam_pwquality模块(或pam_cracklib)可强制密码复杂度,在文件中添加password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= enforce_for_root minlen=8 minclass=3 dcredit=-1 ucredit=-1 lcredit=-1

  • minlen=8:密码最小长度8位;
  • minclass=3:必须包含至少3种字符类型(大写、小写、数字、特殊字符);
  • dcredit=-1:至少1个数字;ucredit=-1:至少1个大写字母;lcredit=-1:至少1个小写字母。

安装pam_pwquality模块(CentOS系统为pam_pwquality,Ubuntu为libpam-pwquality)后,策略即可生效。

特殊账号的权限与密码管理

root账号安全
root账号拥有系统最高权限,需严格管控:

linux设置账号密码

  • 禁用root直接登录:编辑/etc/ssh/sshd_config,将PermitRootLogin yes改为no,重启SSH服务;
  • 使用sudo授权:通过visudo编辑/etc/sudoers文件,为普通用户添加username ALL=(ALL) NOPASSWD: /usr/bin/command(或ALL表示所有命令),实现权限最小化原则。

系统服务账号
如MySQL、Nginx等服务运行时使用的账号(如mysqlnginx),应禁止其登录系统(设置shell为/sbin/nologin),并设置高强度密码,避免使用默认密码或弱密码。

过期账号与锁定
长期不使用的账号可能成为安全隐患,可通过chage -E 0 username立即禁用账号,或usermod -L username锁定账号(密码前添加前缀,需解锁时可使用usermod -U username)。

密码安全最佳实践

  1. 定期更换密码:结合chage命令强制用户定期更新密码,避免长期使用同一密码;
  2. 避免明文存储:密码加密后存储在/etc/shadow文件(权限600,仅root可读),切勿在脚本或配置文件中明文记录密码;
  3. 监控登录行为:通过last命令查看用户登录历史,/var/log/auth.log(Ubuntu)或/var/log/secure(CentOS)分析异常登录(如多次失败尝试);
  4. 启用双因素认证(2FA):结合Google Authenticator或TOTP服务,为用户登录添加动态验证码,进一步提升安全性。

Linux账号密码管理是系统运维的核心环节,需兼顾易用性与安全性,通过合理的用户创建、严格的密码策略、精细的权限管控及持续的安全监控,可有效构建多层次的防护体系,保障系统稳定运行。

赞(0)
未经允许不得转载:好主机测评网 » linux设置账号密码