useradd:建用户

sudo useradd -m -s /bin/bash alice    # 推荐写法
sudo passwd alice                      # 给设密码

常用参数

参数 含义
-m 创建家目录 /home/alice
-s SHELL 指定 shell
-G g1,g2 加入附加组
-g GROUP 主组
-c "COMMENT" 备注(GECOS)
-u UID 指定 UID
-d DIR 自定义家目录
-r 系统账号(UID < 1000)

adduser:交互式(Debian/Ubuntu 友好)

sudo adduser alice          # 一路交互式提示,自动建家 + 设密 + 备注

useradd 是底层;adduser 是 Debian 系的友好封装。两者不能混用

usermod:改用户

sudo usermod -aG sudo alice               # ★ 加 sudo 组(-a 追加,-G 附加组)
sudo usermod -s /usr/bin/zsh alice        # 改 shell
sudo usermod -L alice                     # 锁定
sudo usermod -U alice                     # 解锁
sudo usermod -l newname alice             # 改用户名
sudo usermod -d /new/home -m alice        # 改家目录并移动旧文件

加组永远 -aG(追加),光 -G替换所有附加组。

userdel:删用户

sudo userdel alice                # 删账号,保留家目录
sudo userdel -r alice             # 同时删家目录 + 邮件
sudo userdel -f alice             # 强制(即使在线)

删之前检查

who | grep alice                  # 是否在线
ps -u alice                       # 有没进程
sudo find / -user alice 2>/dev/null   # 还有哪些文件属于 ta

实战:建服务账号

sudo useradd -r -m -d /opt/myapp -s /bin/bash myapp
# -r 系统账号 -d 自定义家 -s 给 shell

# 或彻底不能登录的:
sudo useradd -r -s /usr/sbin/nologin -d /var/lib/myapp myapp

  • /etc/passwd 不存哈希——密码在 /etc/shadow(只 root 能看)
  • userdel 不删用户跑过的 cron / at job——要手动清
  • 数据库 / 应用里的用户跟 Linux 用户没关系——别混淆