R / Richie全部文章 ↑

Linux · 2 分钟阅读

Linux 用户管理

日常操作:useradd / usermod / userdel / groupadd / chage。vipw / vigr 仍是直接编辑 /etc/passwd 的"老派"方式,配合 pwck / grpck 校验。

用户类型

类型 UID 用途
root 0 超级用户
系统用户 1-999(RHEL)/ 1-999(Debian) 服务运行
普通用户 1000+ 人 / 应用

关键文件

文件 内容
/etc/passwd 用户名、UID、GID、家目录、shell
/etc/shadow 密码哈希、过期时间
/etc/group 组信息
/etc/sudoers sudo 授权
/etc/login.defs UID/GID 范围、密码策略默认

创建

useradd -m -s /bin/bash -G wheel,docker alice
passwd alice

# RHEL 推荐:直接给 wheel 组成员 sudo 权限
# Debian/Ubuntu:加入 sudo 组

参数:

  • -m — 创建家目录
  • -s — 指定 shell
  • -G — 附加组
  • -u — 指定 UID
  • -c — 注释(一般用全名)
  • -d — 自定义家目录

修改

usermod -aG docker alice         # 追加组,不带 -a 会覆盖
usermod -s /bin/zsh alice
usermod -L alice                 # 锁定
usermod -U alice                 # 解锁
usermod -e 2026-12-31 alice      # 到期

删除

userdel alice                    # 保留家目录
userdel -r alice                 # 删家目录 + 邮件

组

groupadd -g 1500 devs
groupmod -n developers devs
groupdel devs

# 成员管理
gpasswd -a alice devs            # 添加
gpasswd -d alice devs            # 删除
getent group devs                # 看成员

密码策略

# 查看
chage -l alice

# 设密码有效期
chage -M 90 alice
chage -d 0 alice                 # 下次登录强制改密
chage -W 7 alice                 # 到期前 7 天提醒

/etc/login.defs 定义默认值;/etc/security/pwquality.conf 控制复杂度。

sudo

visudo
# 末尾加
alice  ALL=(ALL) ALL
%devs  ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart app

visudo 校验语法,直接编辑容易把系统改崩。

审计

last                              # 登录历史
lastb                             # 失败登录
who / w                           # 当前会话
faillog -a                        # 登录失败汇总

一些经验

  • 服务账号给系统用户 + nologin shell,禁止交互
  • -aG 加组必带 -a,否则会清空附加组
  • 改 UID 用 usermod -u,别直接编辑 passwd
  • 关键系统用 LDAP / FreeIPA / SSSD 集中管理
  • 个人账号别共用,公用账号审计追不到人

参考