关于linux:Linux用户管理之useraddpasswd命令讲解

5次阅读

共计 2753 个字符,预计需要花费 7 分钟才能阅读完成。

在上一章中,咱们理解到了 Linux 用户的每个配置文件的内容及作用,以及通过手动批改用户配置文件来手动增加一个用户。然而在理论工作过程中,咱们并不是通过手动批改配置来增加用户,而是通过用户治理的各种命令来治理用户。

一、增加用户命令:useradd

Linux 零碎中,能够应用 useradd 命令新建用户,此命令的根本格局如下:

useradd [选项] 用户名 - D 查看缺省参数

该命令罕用的选项及各自的含意如下:

  • u:UID,指定用户的 UID,在上一章咱们理解到普通用户 UID 的范畴是 500-60000 之间
  • d:宿主目录
  • c:用户阐明,对应在 /etc/passwd 文件中第 5 局部,输出便于了解的用户阐明即可
  • g:组名,指定用户所属的群组
  • G:组名,指定用户所属的附加群组
  • s:手工指定用户的登录 Shell,在上一章咱们理解到默认是/bin/bash
  • e:指定用户的生效曰期,格局为 “YYYY-MM-DD”

比方当初要创立一个用户,所属 root 组,而后给这个用户增加一个用户阐明:

$ useradd -g root -c "this is my test user" testuser

执行完这条命令之后,咱们就在零碎中创立了一个名叫 testuser 的用户,咱们查看一下 /etc/passwd 文件,就发现外面曾经存在一条刚增加的用户信息:

如果想应用这个用户登录,咱们再给这个用户设置一个机密就能够了:

$ passwd testuser

个别状况下,咱们创立新用户能够不手工指定任何参数内容,因为应用 Linux 的默认值就能够满足咱们的要求。useradd 命令在增加用户时参考的默认值文件次要有两个,别离是 /etc/default/useradd/etc/login.defs。这两个文件上一章咱们曾经介绍了,这里咱们只简略回顾一下/etc/default/useradd

$ useradd -D

  • GR0UP=100: 这个选项用于建设用户的默认组,也就是说,在增加每个用户时,用户的初始组就是 GID 为 100 的这个用户组。但 CentOS 并不是这样的,而是在增加用户时会主动建设和用户名雷同的组作为此用户的初始组。也就是说这个选项并不会失效。Linux 中默认用户组有两种机制:一种是公有用户组机制,零碎会创立一个和用户名雷同的用户组作为用户的初始组;另一种是公共用户组机制,零碎用 GID 是 100 的用户组作为所有新建用户的初始组。目前咱们采纳的是公有用户组机制。
  • HOME=/home: 指的是用户宿主目录的默认地位,刚刚新建的 testuser 用户的主目录就为 /home/testuser/
  • INACTIVE=-1: 帐号是否过期,也就是 /etc/shadow 文件的第七个字段。这里默认值是 -1,永不过期。
  • EXPIRE=: 示意明码生效工夫,也就是 /etc/shadow 文件的第八个字段。默认值是空,代表所有新建用户没有生效工夫,永恒无效。
  • SHELL=/bin/bash: 示意所有新建设的用户默认 Shell 都是 /bin/bash
  • SKEL=/etc/skel: 在创立一个新用户后,该用户主目录并不是空目录,而是有 .bash_profile、.bashrc 等文件,这些文件都是从 /etc/skel 目录中主动复制过去的。
  • CREATE_MAIL_SPOOL=yes: 指的是给新建用户建设邮箱,默认是创立。也就是说,对于所有的新建用户,零碎都会新建一个邮箱,放在 /var/spool/mail/ 目录下,和用户名雷同。testuser 的邮箱位于 /var/spool/mail/testuser。

因而咱们能够了解 useradd 命令创立用户的零碎外部流程应该是这样的:

1、零碎首先读取 /etc/login.defs 和 /etc/default/useradd,依据这两个配置文件中定义的规定增加用户,也就是向 /etc/passwd、/etc/group、/etc/shadow、/etc/gshadow 文件中增加用户数据

2、接着零碎会主动在 /etc/default/useradd 文件设定的目录下建设宿主目录,最初复制 /etc/skel 目录中的所有文件到此目录中。至此,一个新的用户就创立实现了。

二、批改用户明码命令:passwd

在下面解说增加用户命令的时候,其实咱们曾经用到了 passwd 命令,接下来咱们具体详解一下这个命令。

此命令的根本格局如下:

passwd [选项] 用户名

该命令罕用的选项及各自的含意如下:

  • d:删除明码信息
  • w:明码要到期提前正告的天数,对应于 /etc/shadow 文件中各行的第 6 个字段
  • S:显示明码信息, 也就是 /etc/shadow 文件中此用户明码的内容,仅 root 用户可用
  • l:进行账号应用,也就是使明码生效,仅 root 用户可用
  • u:解锁用户,与下面的 l 参数对应,仅 root 用户可用
  • x: 设置用户的明码有效期,对应 /etc/shadow 文件中各行明码的第 5 个字段
  • n:设置该用户批改明码后,多长时间不能再次批改明码,对应于 /etc/shadow 文件中各行明码的第 4 个字段
1、比方设置刚增加的用户 testuser 的明码:
$ passwd testuser
$ New password:  #输出明码,这里不会明文显示
$ Retype new password:  #再次输出明码
$ passwd:all authentication tokens updated successfully. #提醒明码批改胜利
2、显示用户的明码信息:

$ passwd -S testuser #留神这里的参数 S 是大写

testuser PS 2020-06-17 0 99999 7 -1 (Password set, SHA512 crypt.)

# 用户名:明码:设定工夫:明码批改间隔时间(0):明码有效期(99999):正告工夫(7):明码不生效(-1)

这里的明码批改间隔时间、明码有效期、正告工夫、明码宽限工夫其实来源于配置文件 /etc/shadow 的设置。这里显示明码加密形式为SHA512,从 CentOS 6.3 加密形式曾经从 MD5 加密更新到 SHA512

3、锁定用户

$ passwd -l testuser

锁定该用户之后,咱们查看用户的明码信息,发现信息最初的提醒是 Password locked.,很分明的显示明码曾经被锁定。零碎锁定用户的的解决形式是什么呢?咱们查看下 /etc/shadow 文件看下:

$ grep "testuser" /etc/shadow

大家认真看下,在明码位后面退出了 !! 让明码生效而已。

4、解锁用户

既然可能锁定用户,天然也能解锁用户:

$ passwd -u testuser

执行命令解锁用户之后,用户状态就恢复正常了。

明天为大家解说了 Linux 用户治理最根底的两个命令,一个是增加用户、一个是批改用户明码。下一章持续为大家解说 Linux 用户治理的其余命令。

正文完
 0