1、添加用户(useradd命令)

(1)useradd命令

[root@localhost ~]# useradd [选项] 用户名

一般我们不加任何选项,都使用默认值创建用户即可。(推荐不使用任何选项)

下边可以了解一下常用选项。

选项:

  • -u:550。指定用户的UID。

    普通用户默认从500开始往后排,依次递增,这个选项是给用户指定一个UID。但从这之后再创建新的用户的UID,默认从551开始,依次递增。之前会产生一些没有用到的UID。(一般不会用此选项)。
  • -g:组名。指定初始组,不推荐手工指定。默认就好。

    命令:useradd -g 组名 用户名
  • -G:组名。指定附加组,把用户加入组,使用附加组。

    命令:useradd -G 组名 用户名
  • -c:说明。添加说明。(说明中如果有空格,需要把整个说明用双引号括起来。)
  • -d:加目录。手工指定家目录,目录不需要事先建立。(默认创建的位置就很好)
  • -sshell/bin/bash。(这个就是/etc/passwd 文件中每一行最后的一列)

注意

  • 执行完用户添加命令useradd 选项 用户名之后,一定要设置这个用户设置密码。
  • 添加完用户不设置密码,在/etc/passwd 文件中,信息是正常的,但是在/etc/shadow文件中,密码的位置是!!,表示无法登陆。
  • 设置密码命令为passwd 用户名,然后输入两次密码即可。

(2)useradd默认值

使用useradd命令添加用户时,参考的默认值文件主要有两个,分别是/etc/default/useradd文件和

/etc/login.defs文件。

1)/etc/default/useradd文件

[root@localhost ~]# vi /etc/default/useradd

命令结果如下图所示:

下面挨个解释下:

  • GROUP=100

    这个选项是建立用户的默认组,也就是说添加每个用户时,用户的初始组就是GID为100的这个用户组。但是这个机制没有采用,目前我们采用的机制私有用户组机制,也就是初始组默认和用户名同名。(这选项等于没起作用)
  • HOME=/home

    这个选项是用户的家目录的默认位置,所以所有的新建用户的家目录默认都在/home/下。
  • INACTIVE=-1

    这个选项就是密码过期后的宽限天数,也就是/etc/shadow文件的第七个字段。

    单位是天数,比如10代表密码过期后10天后失效;如果是0,代表密码过期后立即失效;如果是-1,则代表密码永远不会失效。这里默认值是-1,所以所有新建立的用户密码都不会失效。

    (对修改完之后,创建的新用户生效。)
  • EXPIRE=

    这个选项是密码失效时间,也就是/etc/shadow文件的第八个字段。

    也就说用户到达这个日期后就会直接失效。当然这里也是使用时间戳来表示日期的。默认值是空,所以所有新建用户没有失效时间,永久有效。
  • SHELL=/bin/bash

    这个选项是用户的默认shell的。/bin/bash是Linux的标志shell,所以所有新建立的用户默认都具备shell赋予的权限。
  • SKEL=/etc/skel

    这个选项就是定义用户的模板目录的位置,/etc/skel/目录中的文件都会复制到新建用户的家目录当中。
  • CREATE_MAIL_SPOOL=yes

    这个选项定义是否给新建用户建立邮箱,默认是创建,也就是说所有的新建用户系统都会新建一个邮箱,放在/var/spoo1/mail/下和用户名相同。

2)/etc/login.defs文件

下面是文件内容:

# 这个文件有些注释,把注释删除掉,文件内容就变成下面这个样子了
[root@localhost ~]# vi /etc/login. defs
MAIL_DIR /var/spool/mail PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7 UID_MIN 500
UID_MAX 60000 GID_MIN 500
GID_MAX 60000 CREATE_HOME yes UMASK 077 USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512

我们一行一行解释下文件内容:

  • MAIL_DIR=/var/spool/mail

    这行指定了新建用户的默认邮箱位置。比如user1用户的邮箱是就是/var/spool/ma il/user1
  • PASS_MAX_DAYS=99999

    这行指定的是密码的有效期,也就是/etc/shadow文件的第五字段。代表多少天之后必须修改密码,默认值是99999。
  • PASS_MIN_DAYS=0

    这行指定的是两次密码的修改间隔时间,也就是/etc/shadow文件的第四字段。代表第一次修改密码之后,几天后才能再次修改密码。默认值是0。
  • PASS_MIN_LEN=5

    这行代表密码的最小长度,默认不小于5位。但是我们现在用户登录时验证已经被PAM模块取代(更先进一些),所以这个选项并不生效。
  • PASS_WARN_AGE=7

    这行代表密码修改到期前的警告天数,也就是/etc/shadow文件的第六字段。代表密码到底有效期前多少天开始进行警告提醒,默认值是7天。
  • UID_MIN=500UID_MAX=60000

    这两行代表创建用户时,最小UID和最大的UID的范围。我们2.6.x内核开始,Linux用户的UID最大可以支持2^32这么多,但是真正使用时最大范围是60000就足够使用了,不够了在开。

    还要注意,如果我手工指定了一个用户的UID是550,那么下一个创建的用户的UID就会从551开始,哪怕500-549之间的UID没有使用(小于500的UID是给伪用户预留的)。
  • GID_MIN=500GID_MAX 60000

    这两行指定了GID的最小值和最大值之间的范围。
  • CREATE_HOME=yes

    这行指定建立用户时是否自动建立用户的家目录,默认是建立。
  • UMASK=077

    077这行指定的是建立的用户家目录的默认权限,因为umask值是077,所以新建的用户家目录的权限是700(算完之后就是700,注意这个家目录的umask值是本文件中单独定义的,和普通文件的umask值互相独立,该选项无需改动,这样就很好)。
  • USERGROUPS_ENAB=yes

    这行指定的是使用命令userdel删除用户时,是否删除用户的初始组,默认是删除。
  • ENCRYPT_METHOD=SHA512

    这行指定Linux用户的密码使用SHA512散列模式加密,这是新的密码加密模式,原先的Linux只能用DES或MD5方式加密。

3)总结

以上命令基本上不用改动,记住文件的作用,了解就好。

2、设定密码(passwd命令)

(1)命令格式

[root@localhost ~]# passwd [选项] 用户名

选项:

  • -l:暂时锁定用户。该选项仅root用户可用。

    其实就是在/etc/shadow文件中的密码位置,最前边加入了两个!。(手工修改也行,同样的效果)
  • -u:解锁用户。该选项仅root用户可用。

    /etc/shadow文件中的密码位置,取消最前边的两个!
  • --stdin:可以将通过管道符输出的数据作为用户的密码。

    也就是说,可以用输出的字符串作为密码。

    主要在批量添加用户时使用。

示例:

# passwd直接回车代表修改当前用户的密码
[root@localhost ~]# passwd # 注意:普通用户修改自己的密码,密码要符合规范,如果不符合规范修改不了。

(2)可以使用字符串作为密码

# 更改用户user1的密码。
[root@localhost ~]# echo "123" | passwd --stdin user1 # 说明:
# echo "123" 输出123字符串,通过管道符交给passwd,
# 由--stdin选项来支持把passwd收到的密码,设置给user1用户。

注意:--stdin选项来设置密码,不用再输入现有密码和两次新密码的交互了,非常适合批量添加用户时使用。

(3)实练

当我批量创建完用户之后,密码一般都是统一的一个默认值,我需要用户登陆时,第一时间就要修改密码,需要怎么做?

可以通过命令,把密码修改日期归零(/etc/shadow文件第3字段),这样用户一登陆就要修改密码。

提示:因为修改密码的时候为0,证明该用户从1970年到现在一次密码都没有修改过,Linux系统会认为这是不对的,需要你马上进行修改密码。

例如:

[root@localhost ~]# chage -d 0 user1

再次登陆,一上来就会要求你修改密码。

如下图所示:

先输入旧密码,在输入新密码,新密码要求符合规范。然后会登出,需要你重新登陆。

linux设置密码规则

  • 1.使用数字,小写字母,大写字母,特殊符号中的三种。
  • 2.密码长度足够长,大于7位。

3、用户信息修改(usermod命令)

usermod命令是修改已经添加的用户的信息的。

(1)命令格式

命令如下:

[root@localhost ~]# usermod [选项] 用户名

选项:

  • -u:UID。修改用户的UID。
  • -d:家目录。修改用户的家目录。家目录必须写绝对路径。
  • -c:用户说明。修改用户的说明信息,就是/etc/passwd文件的第五个字段。
  • -g:组名。修改用户的初始组,就是/etc/passwd文件的第四个字段。
  • -G:组名。修改用户的附加组,其实就是把用户加入其他用户组。
  • -s :shell。修改用户的登录Shell,默认是/bin/bash
  • -e:日期。修改用户的失效日期,格式为YYY-MM-DD,也就是/etc/shadow文件的第八个字段。
  • -L:临时锁定用户(Lock)。
  • -U:解锁用户(Unlock)。

说明:

你仔细对比一下,usermod命令和useradd命令的选项基本一样。

  • useradd命令是在创建新用户的同时,指定属性。
  • usermod命令是修改系统中已存在用户的属性。

这些选项一般也不建议修改,常用的也就-G选项。

如下示例:

[root@localhost ~]# usermod -G user1(组) user2(用户)

(2)用户可以修改用户名吗?

当然可以,但是不建议修改用户名。

因为是修改了用户名,而初始组等与用户名对应的信息都没有修改,以后用起来及其痛苦。

建议删除旧用户,再建立新用户!

# 修改用户名
[root@localhost ~]# usermod -l 新名 旧名

4、删除用户(userdel命令)

[root@localhost ~]# userdel [-r] 用户名

选项:

  • -r:在删除用户的同时删除用户的家目录。(该选项一般为必选项)

5、切换用户身份(su命令)

su命令可以切换成不同的用户身份(包括切换成root用户)。

注意:超级用户切换成任何其他普通用户都不用密码。

命令格式如下:

[root@localhost ~]# su [选项] 用户名

选项:

  • -:选项只使用-代表连带用户的环境变量一起切换。
  • -c命令:仅执行一次命令,而不切换用户身份。

注意:-绝不能省略,它代表切换用户身份时,用户的环境变量也要切换成新用户的环境变量(用户身份完整切换)。

示例:

# su切换用户身份
[user1@localhost ~]$ su - user2
密码:
[user2@localhost user1]$ whoami
user2 # 退出身份切换
[user2@localhost user1]$ exit
exit
[user1@localhost ~]$ whoami
user1

提示:查看系统生效的变量用env命令。

『学了就忘』Linux用户管理 — 51、用户管理相关命令的更多相关文章

  1. 『学了就忘』Linux系统管理 — 86、查看系统资源相关命令

    目录 1.vmstat命令 2.dmesg命令 3.free命令 4.查看CPU信息 5.查看本机登陆用户信息 (1)w命令 (2)who命令 6.uptime命令 7.查看系统与内核相关信息 1.v ...

  2. 『学了就忘』Linux文件系统管理 — 61、使用parted命令进行分区

    目录 1.parted命令介绍 2.parted交互模式 3.建立分区 (1)查看分区 (2)修改成GPT分区表 (3)建立分区 (4)建立文件系统(格式化) (5)调整分区大小 (6)删除分区 1. ...

  3. 『学了就忘』Linux文件系统管理 — 59、使用fdisk命令进行手工分区

    目录 1.手工分区前提 (1)要有一块新的硬盘 (2)在虚拟机中添加一块新硬盘 2.手工分区 (1)查看Linux系统所有硬盘及分区 (2)手工分区:详细步骤 (3)保存手工分区 3.硬盘格式化 4. ...

  4. 『学了就忘』Linux系统管理 — 81、进程管理介绍

    目录 1.进程与线程的概念 2.什么是进程管理 3.进程管理的作用 4.Linux进程的几种状态 5.进程与线程的关系 (1)线程与进程的关系 (2)总结 1.进程与线程的概念 来源百度百科: 进程( ...

  5. 『学了就忘』Linux系统管理 — 85、工作管理相关命令

    目录 1.工作管理简介 2.如何把命令放入后台 3.后台管理命令 (1)查看后台的工作 (2)将后台暂停的工作恢复到前台执行 (3)把后台暂停的工作恢复到后台执行 4.后台命令脱离登录终端运行 1.工 ...

  6. 『学了就忘』Linux用户管理 — 50、用户管理相关文件详细说明

    目录 1.用户信息文件 2./etc/shadow影子文件 3./etc/group 组信息文件 4.组密码文件 5.用户的家目录 6.用户邮箱目录 7.用户模板目录 总结: 提示:严格的用户权限划分 ...

  7. 『学了就忘』Linux启动引导与修复 — 72、Linux系统的修复模式(单用户模式)

    目录 1.单用户模式常见的错误修复 2.通过单用户模式修改系统密码 (1)进入grub启动引导程序中 (2)编辑相应的系统启动内容 (3)编辑grub配置文件内容 (4)启动系统 (5)修改root用 ...

  8. 『学了就忘』Linux基础命令 — 25、文件基本权限的管理

    目录 1.文件和目录的默认权限 2.umask默认权限 (1)查看系统的umask权限 (2)用八进制数值显示umask权限 (3)umask权限的计算方法 (4)注意:umask默认权限的计算绝不是 ...

  9. 『学了就忘』Linux基础 — 15、了解Linux系统的目录结构

    目录 1.一级目录说明 (1)一级目录列表 (2)/bin/和/sbin/目录说明 (3)/boot/目录说明 (4)/lib/和/lib64/目录说明 (5)/lost+found/目录说明 (6) ...

随机推荐

  1. 关于SSTI的坑

    SSTI注入 进过几天的CSDN和博客园以及个人博客的查询,我大概讲一下我对SSTI模板注入的理解. SSTI注入指的是模板注入(应该翻译就是模板注入) 就站在我所了解的知识水平(大概就是大一随便水了 ...

  2. VMware Tanzu社区版初体验

    VMware Tanzu社区版 VMware Tanzu Community Edition 是一个功能齐全.易于管理的 Kubernetes 平台,供学习者和用户使用. 它是一个免费的.社区支持的. ...

  3. 时间轮机制在Redisson分布式锁中的实际应用以及时间轮源码分析

    本篇文章主要基于Redisson中实现的分布式锁机制继续进行展开,分析Redisson中的时间轮机制. 在前面分析的Redisson的分布式锁实现中,有一个Watch Dog机制来对锁键进行续约,代码 ...

  4. Vue3学习(七)之 列表界面数据展示

    一.前言 昨晚可能是因为更新完文章后,导致过于兴奋睡不着(写代码确实太容易让人兴奋了),结果两点多才睡着,大东北果然还是太冷了. 不知道是不是因为膝盖和脚都是冰凉的,所以才导致很晚才能入睡? 刚眯了一 ...

  5. 2021.8.18 NKOJ周赛总结

    两个字总结:安详 T1: NKOJ-6179 NP问题 问题描述: p6pou在平面上画了n个点,并提出了一个问题,称为N-Points问题,简称NP问题. p6pou首先在建立的平面直角坐标系,并标 ...

  6. Elasticsearch核心技术(三):Mapping设置

    本文从Mapping简介.Dynamic Mapping.自定义Mapping和Mapping常用参数说明4个部分介绍Elasticsearch如何设置Mapping. 3.1 Mapping简介 3 ...

  7. 嵌入式物联网之SPI接口原理与配置

    本实验采用W25Q64芯片 W25Q64是华邦公司推出的大容量SPI FLASH产品,其容量为64Mb.该25Q系列的器件在灵活性和性能方面远远超过普通的串行闪存器件.W25Q64将8M字节的容量分为 ...

  8. STM32时钟系统之利用 systick 定时器来实现准确的延时。

    本篇文章带着大家来认识一下 STM32 的时钟系统,以及利用 systick 定时器来实现一个比较准确的延时. 我们首先从时钟说起,时钟在MCU中的作用,就好比于人类的心脏一样不可或缺.STM32 的 ...

  9. linux shell 函数返回值问题(超过255)

    最近再写一个shell测试的时候出现问题,函数返回值异常 用shell计算斐波那契数列数列,写了一个shell函数,然后调用的,验证的时候我只随便计算了几个数(10以内),确认结果是正确的就提交了,后 ...

  10. Shooting Bricks题解

    题目传送门 以后我绝对不会一直磕着一道题磕几个小时了...感觉还是自己节奏出了问题,不知为啥感觉有点小慌... 算了,其实再回头仔细看一下这个题dp的思路还是比较好想出来的,打代码之前一定要做好足够的 ...