centos userad命令详解

  1. 命令作用
    用于创建用户
  2. 常见参数
  • -d 指定用户的家目录
  • -e 账号的到期时间,格式YYYY-MM-DD
  • -u 指定该用户的默认UID,(centos7开始1000是普通用户的第一个UID)
  • -g 指定一个初始的用户基本组(必须已经存在)
  • -G 指定一个或多个扩展用户组
  • -s 指定改用户的默认shell解释器
  • -p 在创建用户的使用指定密码
  • -M 在创建用户的同时不会创建用户家目录
  • m 创建一个与用户关联的主目录
  • --system 创建一个系统用户,UID低于1000的用户
  1. 实践

    3.1. 创建用户并指定用户的家目录(默认是在/home下面)

    复制代码
    useradd -d /tom tom
    powershell 复制代码
    cat /etc/passwd | grep tom
    tom:x:1000:1000::/tom:/bin/bash

    3.2.创建用户并指定用户UID

    直接创建用户查看UID

    复制代码
    useradd tom
    powershell 复制代码
    id tom
    uid=1000(tom) gid=1000(tom) 组=1000(tom)

    第一个普通用户的默认UID是1000,新增用户往上递增;

    指定用户UID为2000

    复制代码
    useradd -u 2000 tom
    powershell 复制代码
    id tom
    uid=2000(tom) gid=2000(tom) 组=2000(tom)

3.2. 创建用户并指定默认主组为root

用户创建时,会默认一个同名的组;

例如,创建用户tom,并查看组

复制代码
useradd tom
powershell 复制代码
id tom
uid=1000(tom) gid=1000(tom) 组=1000(tom)

可以看到,创建了一个GID为1000的与用户同名的组;

创建用户指定,默认的组为root

复制代码
useradd tom -g root
powershell 复制代码
id root
uid=0(root) gid=0(root) 组=0(root)

可以看出默认组已经改成root了

3.3. 创建用户并给用户加入一个外部组

复制代码
useradd -G root tom
powershell 复制代码
uid=1000(tom) gid=1000(tom) 组=1000(tom),0(root)

可以看出,用户拥有自己的默认组,还拥有了一个外部组

3.4. 创建用户时,指定用户的shell

创建用户默认指定的是 /bin/bash

创建用户指定shell为 /sbin/nologin

复制代码
useradd tom -s /sbin/nologin
powershell 复制代码
tom:x:1000:1000::/home/tom:/sbin/nologin

3.5. 在创建用户的同时,并设置密码

复制代码
useradd tom -p 123456

默认明文是不安全的,我们可以对密码进行加密

复制代码
useradd tom -p $(openssl passwd -1 123456)

3.6. 创建用户时,不创建用户的家目录

复制代码
useradd -M tom

3.7. 创建一个系统用户

系统用户就是UID低于1000的用户,并且不会创建家目录

复制代码
useradd tom --system
powershell 复制代码
uid=996(tom) gid=993(tom) 组=993(tom)

可以使用-m为系统用户创建家目录

复制代码
 useradd tom --system -m

注:所有参数可以搭配使用

  1. 删除用户

    复制代码
    userdel tom

    删除用户,但不删除用户的家目录

    复制代码
    userdel -r tom

    删除用户,并删除用户的家目录

相关推荐
Jason_chen25 分钟前
Linux 6.2 音频机制深度解析:AI驱动的低延迟音频与零信任音频安全架构
linux
下午写HelloWorld30 分钟前
Linux系统及Ubuntu常用指令
linux·ubuntu·操作系统
云计算磊哥@2 小时前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
weixin_523185322 小时前
Collections.unmodifiableMap详解:真的不可修改吗?
java·linux·前端
天天进步20152 小时前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
My is 李豆3 小时前
CentOS 7 安装 Docker 完整教程(含 docker-compose 插件)
docker·eureka·centos
凡人叶枫3 小时前
Effective C++ 条款04:确定对象被使用前已先被初始化
java·linux·开发语言·c++·嵌入式开发
云栖梦泽3 小时前
玩转RK3506SDK
linux·嵌入式硬件
极客先躯3 小时前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
Java面试题总结3 小时前
Linux-Ubantu-贴士-apt的地盘
linux·运维·服务器