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账户安全管理需要从多个维度入手:
-
规范账户分类:明确区分root、系统用户和普通用户。
-
严格文件权限:锁定关键文件如
/etc/shadow
。 -
强化密码策略:设置有效期、检查弱密码。
-
清理冗余账号:禁用或删除无用账户。
-
审计操作记录:限制命令历史并配置自动注销。