Linux用户和组管理,useradd和groupadd命令使用

前言

服务器上需要给开发人员开个账号?或者给不同的人分配不同的权限?这就需要用到 Linux 的用户和组管理。Linux 是多用户系统,每个用户有自己的家目录和权限。学会用户和组管理,是运维的基本功。本文就讲一下怎么创建、删除、修改用户和组。

创建用户

基本创建

useradd testuser

这样就创建了一个叫 testuser 的用户。默认会:

  • 创建一个同名的组
  • 创建家目录 /home/testuser
  • 指定 shell 为 /bin/bash

设置密码

passwd testuser

输入两次密码就好了。注意: 新建的用户默认是不能登录的,必须设密码才能登录。

创建用户时指定参数

useradd -m -s /bin/bash -G wheel testuser

参数说明:

  • -m:自动创建家目录
  • -s /bin/bash:指定默认 shell
  • -G wheel:把用户加入 wheel 组(可以用 sudo)

查看用户信息

id testuser

输出用户的 UID、GID、所属组。

cat /etc/passwd

查看所有用户。

删除用户

userdel testuser

这样只删用户,不删家目录。

如果要连家目录一起删:

userdel -r testuser

注意: -r 会把用户的家目录和邮件都删掉,小心操作。

修改用户

修改用户名

usermod -n newname oldname

修改用户的家目录

usermod -d /home/newhome testuser

把用户加入某个组

usermod -aG wheel testuser

-aG 表示追加到组,不要只用 -G,不然会把原来的组都覆盖掉。

锁定用户

usermod -L testuser

锁定后用户不能登录。

解锁用户

usermod -U testuser

组管理

创建组

groupadd developers

删除组

groupdel developers

查看用户属于哪些组

groups testuser

把用户加入组

usermod -aG developers testuser

从组里删除用户

gpasswd -d testuser developers

sudo 权限

把用户加入 wheel 组(CentOS 默认支持 sudo 的组)

usermod -aG wheel testuser

这样 testuser 就可以用 sudo 执行 root 命令了。

编辑 sudoers 文件

visudo

在文件里添加:

testuser ALL=(ALL)       ALL

这样 testuser 也有 sudo 权限。

注意: 一定要用 visudo 编辑,不要直接改 /etc/sudoers,改坏了 sudo 就用不了了。

查看登录历史

谁在线

w

历史登录记录

last

谁在执行 sudo

lastcomm

实际应用场景

场景1:给开发人员开账号

useradd -m -s /bin/bash dev01
passwd dev01
usermod -aG developers dev01

场景2:给运维开 sudo 权限

useradd -m -s /bin/bash ops01
passwd ops01
usermod -aG wheel ops01

场景3:删除离职员工账号

userdel -r olduser

常见坑

坑1:userdel 没加 -r,家目录还在

只删了用户,家目录 /home/testuser 还在,占着磁盘空间。

解决: 删用户的时候加 -r:

userdel -r testuser

坑2:usermod -G 把原来的组覆盖了

用 -G 而不是 -aG,结果用户原来的组都没了,只剩新的组。

解决: 追加组用 -aG:

usermod -aG developers testuser

坑3:新建用户不能登录

创建了用户,但没设密码,结果不能登录。

解决: 创建完用户一定要设密码:

passwd testuser

坑4:visudo 改错了

直接用 vi 改 /etc/sudoers,改错了导致 sudo 用不了。

解决: 一定要用 visudo 命令编辑,它会检查语法。

总结

用户和组管理的核心命令:

  1. useradd:创建用户
  2. passwd:设置密码
  3. userdel -r:删除用户(连家目录)
  4. usermod -aG:把用户加入组
  5. groupadd:创建组
  6. groups:查看用户属于哪些组
  7. visudo:编辑 sudo 权限

用户管理是 Linux 安全的基础,每个用户用自己的账号,不要所有人都用 root。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-5 07:47