> 技术文档 > Linux:账户安全_linux账户安全

Linux:账户安全_linux账户安全


引言

在Linux系统中,账户安全是系统管理的基础。合理的账户管理不仅能防止未授权访问,还能有效降低安全风险。本文将围绕账户分类、文件结构、安全控制及实战操作,全面解析Linux账户安全的核心知识点,助你构建安全的系统环境。


一、账户概述

1. 账户的作用

账户是用户在系统中的唯一标识,用于隔离资源(如文件、进程)并提供个性化工作环境(如主目录、Shell配置)。

2. 账户分类

  • 用户账户

    • 超级用户(root):UID=0,拥有最高权限。

    • 系统用户:0<UID<1000,用于运行系统服务,不可登录。

    • 普通用户:UID≥1000,供日常使用。

  • 组账户

    • 基本组(私有组):用户创建时的默认组。

    • 附加组(公共组):用户可加入的其他组。

3. UID与GID

  • UID(用户标识号):唯一标识用户,root的UID为0。

  • GID(组标识号):唯一标识组,root组的GID为0。


二、账户文件解析

1. /etc/passwd文件

记录所有用户的基本信息,每条记录包含7个字段,用冒号分隔。

root:x:0:0:root:/root:/bin/bash
  • 字段说明

    • 用户名:密码占位符(X):UID:GID:描述信息:主目录:默认Shell

2. /etc/shadow文件

存储用户密码及安全策略,每条记录包含9个字段。

root:$6$salt...:19392:0:99999:7:::
  • 关键字段

    • 加密后的密码

    • 最后一次修改时间(从1970年1月1日起的天数)

    • 密码有效期过期警告时间账户失效时间等。


三、系统账号清理实战

1. 禁用非登录账号

将系统用户的Shell设置为/sbin/nologin

usermod -s /sbin/nologin username

2. 锁定长期未用账号

passwd -l username # 锁定账号usermod -L username # 另一种锁定方式

3. 删除无用账号

userdel -r username # 删除用户并移除主目录

4. 锁定敏感文件

防止/etc/passwd/etc/shadow被篡改:

chattr +i /etc/passwd /etc/shadow # 锁定文件chattr -i /etc/passwd /etc/shadow # 解除锁定

四、密码安全控制

1. 设置密码有效期

  • 全局配置:修改/etc/login.defs中的PASS_MAX_DAYS(适用于新用户)。

  • 针对已有用户

    chage -M 30 username # 密码最长30天有效

2. 强制用户登录时修改密码

chage -d 0 username # 下次登录必须修改密码

3. 检查空口令账号

awk -F: \'$2==\"\"\' /etc/shadow # 列出空密码用户

4. 排查后门账号

检查是否存在UID为0的非root用户:

awk -F: \'$3==0 {print $1}\' /etc/passwd

五、命令历史与终端自动注销

1. 限制命令历史记录

  • 减少记录条数

    vi /etc/profileHISTSIZE=50 # 修改HISTSIZE值
  • 退出时清空历史
    在用户主目录的.bash_logout中添加:

    history -cclear

2. 设置终端自动注销

.bash_profile中配置超时时间(单位:秒):

export TMOUT=300 # 5分钟无操作自动退出

六、总结

Linux账户安全管理需要从多个维度入手:

  1. 规范账户分类:明确区分root、系统用户和普通用户。

  2. 严格文件权限:锁定关键文件如/etc/shadow

  3. 强化密码策略:设置有效期、检查弱密码。

  4. 清理冗余账号:禁用或删除无用账户。

  5. 审计操作记录:限制命令历史并配置自动注销。