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

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

相关推荐
小刘不想改BUG3 分钟前
LeetCode LCR 015. 找到字符串中所有字母异位词 (Java)
linux·算法·leetcode
Hi2024021729 分钟前
如何通过partclone克隆Ubuntu 22系统
运维·服务器·ubuntu
Li_yizYa1 小时前
网络原理 | 网络基础概念复习
运维·服务器·网络·计算机网络
s_little_monster1 小时前
【Linux】socket网络编程基础
linux·运维·网络·笔记·学习·php·学习方法
猴子请来的逗比4891 小时前
nginx负载均衡及keepalive高可用
运维·学习·nginx·负载均衡
FL171713142 小时前
UR5e机器人Matlab仿真
linux·matlab·机器人
不知几秋6 小时前
数字取证-内存取证(volatility)
java·linux·前端
欧先生^_^9 小时前
Linux内核可配置的参数
linux·服务器·数据库
海尔辛10 小时前
学习黑客5 分钟读懂Linux Permissions 101
linux·学习·安全
王RuaRua11 小时前
[数据结构]5. 栈-Stack
linux·数据结构·数据库·链表